Go Down

Topic: Proyecto 2- Starter Kit (Read 91 times) previous topic - next topic

Iker_1209

Hola, he empezado a usar Arduino hace muy poco, y he estado realizando el proyecto 2 y si os digo la verdad no he podido hacerlo correctamente. Mi problema es en el algoritmo que nos manda a programar el libro de proyectos de starter kit en el proyecto 2. Deberían de quedarse el led verde encendido sin nada más y cuando esté apretado el pulsador apagarse el led verde y que los rojos parpadeen. El caso es que los leds rojos parpadean aunque el botón no esté pulsado y he estado 1 hora y media buscando y no he encontrado nada ¿Alguien encuentra algún fallo?

Gracias de antemano.

Code: [Select]


int switchState = 0;

void setup() {
 
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(2,INPUT);
}

void loop() {
switchState = digitalRead(2);
if (switchState == LOW) {
  //BOTON NO PRESIONAD0
  digitalWrite(3,HIGH);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
   }
   else { //boton presionado
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, HIGH);

    delay(250); //espera 1 cuarto de segundo
    //permuta leds
    digitalWrite(4, HIGH);
    digitalWrite(5, LOW);
    delay(250); //espera 1 cuarto de segundo
   }
} //vuelve al bucle

Jorgeturi

Hola!
Primero que nada, no soy experto, antes de leer lo de abajo... ¿cómo está conectado el pulsador? Por como comentas debe estar directo de 5v al pin 2 y el pin 2 tener una resistencia a masa
(De ese modo, siempre tiene un 0 lógico y al presionar le mandas un 1)

Si lo tenes así y no funciona recomiendo:


Agregar en el setup:
Serial.begin(9600);
 y en el loop
Serial.println (switchState);
Esto después de leer el estado del pin

Entonces por el monitor serial podes ver que está leyendo, si 1 o 0



Después
if (switchState == LOW) { , para probar yo lo cambiaria por
if (switchState == 1) {
Y en vez de else {, pondria
if (switchState == 0) {

Te recomiendo probar y probar, total nada se rompe, cuando más no compila o no funciona bien



surbyte

Evidentemente tienes el botón al revés.
Asi que o cambias esto

Code: [Select]
if (switchState == LOW) {
  //BOTON NO PRESIONAD0


por
Code: [Select]

if (switchState == HIGH) {
  //BOTON NO PRESIONAD0



Iker_1209


Go Up