¿Cómo cablear un botón para ingresar un Attiny85 utilizando el código Arduino?

2

Estoy tratando de "reducir" mi proyecto arduino a un Attiny85. ¿Pero por alguna razón no puedo conseguir que un botón de entrada funcione en el Attiny85? Simplemente para el circuito y para asegurarme de que no cometí un error en algún lugar, me quité todo excepto un botón y un LED. Primero lo probé en el Arduino y usé el ejemplo de enlace para probar un ejemplo simple. Cambié el ledPin a 10 que conecté a mi placa de pruebas, a través de una resistencia, al LED y a tierra. Conecté el botón en el pin 2 del arduino y conecté el cable de tierra del botón a una resistencia de 10k, luego a tierra. Todo eso funciona.

Entonces, antes de cargarlo en el diminuto, cambié el ledPin a 0 o 1 (funciona en cualquiera de los dos: cargué un simple boceto sin abrir el código del botón para probar el LED) y luego dejé el pin del botón en 2 como se muestra en el diagrama aquí enlace o enlace pero no ocurre nada cuando se presiona el botón. Si invierto la lógica, el LED está encendido a menos que se presione el botón, entonces el LED siempre está encendido.

No puedo entender lo que estoy haciendo mal. El mismo cableado funciona con el arduino, pero no puedo conseguir el registro para presionar el botón. El objetivo final con el botón sería usar el attachInterrupt(0, increment, CHANGE); para el botón, pero no puedo hacer que ni siquiera funcione un simple boceto.

Cualquier ayuda es muy apreciada! Gracias de antemano!

Edit1:

// constants won't change. They're used here to 
// set pin numbers:
const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  1;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);      
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);  
}

void loop(){
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {     
    // turn LED on:    
    digitalWrite(ledPin, HIGH);  
  } 
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW); 
  }
}
    
pregunta Elmer

1 respuesta

1

Es simplemente la configuración de tu botón el problema. Ate el pin del botón a tierra con la resistencia y ate el botón del pin del botón a vcc.

    
respondido por el James

Lea otras preguntas en las etiquetas