5.ALGORITMO DE PROGRMACION
inicio
PIN,LECTURA,CUENTA
PIN(2.6)SALIDA PIN (6.7)ENTRADA
111 SEGÚN DATO
LECTURA=0
LECTURA=2
LECTURA=1
2
3 CUENTA=0
1
LECTURA=3
CUENTA=9
PIN 2-6 LOW
CUENTA=CUENTA+1
MOSTRAR CUENTA
1
LECTURA=0
2
CUENTA=9
CUENTA=CUENTA-1
MOSTRAR CUENTA
LECTURA=0
CUENTA=0
1
3
1.OBJETIVO Realizar un programa en arduino que genere contadores up y down hasta 9 mediante el comando de un dip switch. El dip switch generara combianciones de 0 y 1, los cuales son leidos por la placa arduino en decimal estos códigos van del 0 al 3. Dependiendo de las posiciones del dip switch generara un cintador down , up, cero en todos los leds y por ultimo se detiene la cuenta. 2. MATERIALES
01 Dip switch 4 leds de color rojo Resistencias de330 ohms Protoboard 10 cables macho macho
3. PROCEDIMIENTO RO 0 0 1 1 4. ESQUEMA
R1 0 1 0 1
ACCION Pausa Mod 10 down Mod 10 down Borrado
6. PROGRAMA EN ARDUINO byte pin,lectura,cuenta; void setup() { for(pin=2;pin<6;pin++) { pinMode(pin,OUTPUT); } for(pin=6;pin<8;pin++) { pinMode(pin,INPUT); } void loop() { borrar: for(pin=2;pin<6;pin++)} digitalWrite(pin,LOW); } pregunta: for(pin=6;pin<8;pin++) { bitWrite(lectura,pin-6,digitalRead(pin)); } switch (lectura) { case 0: goto pregunta break; case 1: for(cuenta=0;cuenta<10;cuenta++) { senso: for(pin=6;pin<8;pin++) {bitWrite(lectura,pin-6,digitalRead(pin)); }}
switch (lectura) { case 0: goto senso; break; case 1: goto continua; break; default: goto pregunta; } continua: for(pin=2;pin<6;pin++) {digitalWrite(pin, bitRead(cuenta,pin-2));} delay(1000);} break; case 2: // cuenta 1 down for(cuenta=9;cuenta>0;cuenta--) { senso2: for(pin=6;pin<8;pin++)} { bitWrite(lectura,pin-6,digitalRead(pin)); }
switch (lectura) { case 0: goto senso2; break;
case 2: goto continua2; break; default: goto pregunta; } continua2: // escritura for(pin=5;pin>=2;pin--) { digitalWrite(pin, bitRead(cuenta,pin-2)); } delay(1000);} //cero pin=2; digitalWrite(pin,bitRead(0,pin-2)); delay(1000); break; case 3: goto borrar; break; } }