Buenas noches!
Hacia mucho tiempo que no rondaba por estos lares! Estoy trancado con un programa que estoy desarrollando:
Tengo una entrada BCD de 4 bit + entrada "manual/automatico" + dos entradas "a" y "b".
Para lo cual utilizo 7 pines de entrada.
Manejare 10 salidas digitales.
En modo "manual" las salidas las manejare mediante pulsadores, aqui no tengo problemas, pienso partir de:
En modo automatico las salidas seran controladas por la entrada BCD, pero, las entradas "a" y "b", haran "ignorar" lo que dice el BCD para sacar por una misma salida tres combinaciones de entrada.
Y en esto ultimo esta mi problema, estoy usando IF, pero recien estoy escribiendo el caso de AUTOMATICO = 1 (activo), por lo que tendria que usar otros dos IF para a = 1 y b =1 respectivamente.
Aclarar que las salidas que manejaria "a" (10M, 15M y 20M) no son las mismas que manjeria "b" (12M, 17M y 30M).
Adjunto lo que he escrito hasta el momento, espero que me puedan dar una mano!
Gracias!
Hacia mucho tiempo que no rondaba por estos lares! Estoy trancado con un programa que estoy desarrollando:
Tengo una entrada BCD de 4 bit + entrada "manual/automatico" + dos entradas "a" y "b".
Para lo cual utilizo 7 pines de entrada.
Manejare 10 salidas digitales.
En modo "manual" las salidas las manejare mediante pulsadores, aqui no tengo problemas, pienso partir de:
Código:
if AUTOMATICO =1
{
//Programa automatico
}
else
{
//Manual
}
En modo automatico las salidas seran controladas por la entrada BCD, pero, las entradas "a" y "b", haran "ignorar" lo que dice el BCD para sacar por una misma salida tres combinaciones de entrada.
Y en esto ultimo esta mi problema, estoy usando IF, pero recien estoy escribiendo el caso de AUTOMATICO = 1 (activo), por lo que tendria que usar otros dos IF para a = 1 y b =1 respectivamente.
Aclarar que las salidas que manejaria "a" (10M, 15M y 20M) no son las mismas que manjeria "b" (12M, 17M y 30M).
Adjunto lo que he escrito hasta el momento, espero que me puedan dar una mano!
Gracias!
Código:
int DATA_A = 8
int DATA_B = 9
int DATA_C = 10
int DATA_D = 11
int 3_WARC = 12
int 3_BAND = 13
int AUTO = 13
//-----------------------------
int 160M = A4
int 80M = A5
int 40M = 0
int 30M = 1
int 20M = 2
int 17M = 3
int 15M = 4
int 12M = 5
int 10M = 6
int 6M = 7
//-------------------------------
pinMode (DATA_A, INPUT)
pinMode (DATA_B, INPUT)
pinMode (DATA_C, INPUT)
pinMode (DATA_D, INPUT)
pinMode (3_WARC, INPUT)
pinMode (3_BAND, INPUT)
pinMode (AUTO, INPUT)
//-------------------------------
pinMode (160M, OUTPUT)
pinMode (80M, OUTPUT)
pinMode (40M, OUTPUT)
pinMode (30M, OUTPUT)
pinMode (20M, OUTPUT)
pinMode (17M, OUTPUT)
pinMode (15M, OUTPUT)
pinMode (12M, OUTPUT)
pinMode (10M, OUTPUT)
pinMode (6M, OUTPUT)
//----------------------------
void setup() {
// put your setup code here, to run once:
}
void loop() {
// 0 0 0 1 1 160M
// 0 0 1 0 2 80M
// 0 0 1 1 3 40M
// 0 1 0 0 4 30M
// 0 1 0 1 5 20M
// 0 1 1 0 6 17M
// 0 1 1 1 7 15M
// 1 0 0 0 8 12M
// 1 0 0 1 9 10M
// 1 0 1 0 A 6M
if (AUTO = 0)
{
//160 METROS
if ((AUTO == 0 ) && (DATA_A == 0 ) && (DATA_B == 0 ) && (DATA_C== 0 ) && (DATA_D == 1 ))
{
digitalWrite (160M = HIGH)
digitalWrite (80M = LOW)
digitalWrite (40M = LOW)
digitalWrite (30M = LOW)
digitalWrite (20M = LOW)
digitalWrite (17M= LOW)
digitalWrite (15M= LOW)
digitalWrite (12M = LOW)
digitalWrite (10M = LOW)
digitalWrite (6M = LOW)
}
//30 METROS (IGUAL PARA 30M, 17M Y 12M) (IGUAL PARA 10M, 15M Y 20M)
if ((AUTO == 0 )&&(DATA_A == 0 ) && (DATA_B == 1 ) && (DATA_C== 0 ) && (DATA_D == 0 ))
{
digitalWrite (30M = HIGH)
digitalWrite (160M = LOW)
digitalWrite (80M = LOW)
digitalWrite (40M = LOW)
digitalWrite (20M = LOW)
digitalWrite (17M= LOW)
digitalWrite (15M= LOW)
digitalWrite (12M = LOW)
digitalWrite (10M = LOW)
digitalWrite (6M = LOW)
}
}
else
{
//MANUAL
}