Índice general Foros Digital, Electricidad e Informática Diseñar un decoder en Arduino.

Diseñar un decoder en Arduino.

Moderador: 241-2001



Desconectado
Mensajes: 6372
Registrado: 19 Ago 2009 20:39

Hola a todos.

Esta vez soy yo quien pide ayuda.

Me gustaría diseñar el Sketch para hacer de un Arduino Nano un decoder para dos señales de tres luces y un servomotor.

No me interesa que de deis el Sketch terminado, lo que me interesa es que me tutoréis en el paso a paso.

Cada una de las señales se controlarían mediante dos direcciones fijas, por lo que la definición de las direcciones quedaría fijadas en el Sketch, de manera siguiente:

Luz Verde Señal 1 > dirección 65 +
Luz Roja Señal 1 > dirección 65 -
Luz Amarilla Señal 1 > dirección 66 +

Luz Verde Señal 2 > dirección 67 +
Luz Roja Señal 2 > dirección 67 -
Luz Amarilla Señal 2 > dirección 68 +

Servo posición 1 > dirección 69+
Servo posición 2 > dirección 69-

El primer paso del Sketch sería el de la inclusión de las librerías:

#include <NmraDcc.h> // Llibreries
#include <Servo.h>


El segundo paso sería el de crear los Objetos:

NmraDcc Dcc; // Objectes
Servo servo;


Y el tercer paso crear las constantes:

// Constants modificables
const int PinDcc = 2; // DCC PIN

const int LedVerdSem1 = 8; // LED PIN
const int LedVermellSem1 = 9;
const int LedGrocSem1 = 10;

const int LedVerdSem2 = 11;
const int LedVermellSem2 = 12;
const int LedGrocSem2 = 13;

const int PinServo = 14;

const int PosicióServo1 = 10; // Posició del servo
const int PosicióServo2 = 120;

const int AdreçaDccLedVerdSem1 = 65 +; // Adreça accessoris
const int AdreçaDccLedVermellSem1 = 65 -;
const int AdreçaDccLedGrocSem1 = 66 +;

const int AdreçaDccLedVerdSem2 = 67 +;
const int AdreçaDccLedVermellSem2 = 67 -;
const int AdreçaDccLedGrocSem2 = 68 +;

const int AdreçaDccServo = 69;


¿Voy bién?
Si crees que te he servido de ayuda, puedes invitarme a un café alfredpuro (a) telefonica .net

l'Alfred, el Fantito.


Desconectado
Mensajes: 2185
Registrado: 21 Mar 2014 12:52
Hola Alfred.

De momento bien, excepto por esto:
Fantito escribió:
....

const int AdreçaDccLedVerdSem1 = 65 +; // Adreça accessoris
const int AdreçaDccLedVermellSem1 = 65 -;
const int AdreçaDccLedGrocSem1 = 66 +;

const int AdreçaDccLedVerdSem2 = 67 +;
const int AdreçaDccLedVermellSem2 = 67 -;
const int AdreçaDccLedGrocSem2 = 68 +;


¿Voy bién?


los + y los - no le va a gustar al compilador, tengo que mirar en la librería NMRADcc para ver cómo definirlo, pero creo que sería algo así como
const int AdreçaDccLedVerdVermellSem1 = 65; // Adreça accessoris
const int AdreçaDccLedGrocSem1 = 66;

const int AdreçaDccLedVerdVermellSem2 = 67;
const int AdreçaDccLedGrocSem2 = 68;


Y luego ya, en la función de callback correspondiente, mirar si se está activando o desactivando el accesorio y según sea, activar / desactivar los pines correspondientes

Un saludo


Desconectado
Mensajes: 751
Ubicación: Salamanca
Registrado: 12 Ene 2012 14:44
Creo que la mejor manera de tutelar a un aprendiz es remitirle al documento sobre programación de Arduino para los trenes que hay gratuito en internet, en español, y de una calidad sin igual en el mundo:

LenguajeArduino.jpg
LenguajeArduino.jpg (17.97 KiB) Visto 378 veces


Por supuesto, es de Paco Cañada. Enlace AQUÍ.
Saludos

[Multimaus + GenLi-S88 + +z21f. + RocRail (MacOsX)]
H0 Renfe, sin catenaria


Volver a Digital, Electricidad e Informática

Síguenos en Facebook Síguenos en Youtube Síguenos en Instagram Feed - Nuevos Temas
©2017   -   Información Legal