Attiny84 Digital Input

Hallo,

mit der Arduino IDE flashe ich über einen Arduino Nano einen Attiny84. Innerhalb des Programms möchte ich herkömmliche Buttons als digitalen Eingang verarbeiten. Mittels einer LED möchte ich testen, ob der Code in die richtigen Events rennt. Beim Anlegen der Spannung ist die LED aus - soweit OK. Drücke ich
dann eine Taste, geht die LED an, aber nicht wieder aus. Grundlegend soll die LED nur beim Button druck (hier nur testweise bei einem Button) kurz angehen. Pull Down auf GND ist am digitalen Eingang geschalten.

Hier mein Code:

#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();

const long senderId = 55412;
const int rxPin = 6;
const int pinReset = 5;
const int pinButtonOK = 4;
const int pinButtonC1 = 3;
const int pinButtonC2 = 2;
const int pinButtonC3 = 1;
long sendData = 0;
const int pinLED = 7;


void setup() {

  mySwitch.enableTransmit(2);
  pinMode(pinReset, INPUT); 
  pinMode(pinButtonOK, INPUT); 
  pinMode(pinButtonC1, INPUT); 
  pinMode(pinButtonC2, INPUT);
  pinMode(pinButtonC3, INPUT);
  pinMode(pinLED, OUTPUT); 
  
}

void loop() {  

  if(digitalRead(pinReset) == HIGH){
    digitalWrite(pinLED, HIGH);
    sendData = senderId * 100;
    sendData = sendData + 0;
    mySwitch.send(sendData, 24);
    digitalWrite(pinLED, LOW);    
  } else if(digitalRead(pinButtonOK) == HIGH){
    digitalWrite(pinLED, HIGH);
    sendData = senderId * 100;
    sendData = sendData + 1;
    mySwitch.send(sendData, 24);
    digitalWrite(pinLED, LOW);     
  } else if(digitalRead(pinButtonC1) == HIGH){
    digitalWrite(pinLED, HIGH);
    sendData = senderId * 100;
    sendData = sendData + 2;
    mySwitch.send(sendData, 24);
    digitalWrite(pinLED, LOW);      
  } else if(digitalRead(pinButtonC2) == HIGH){
    digitalWrite(pinLED, HIGH);
    sendData = senderId * 100;
    sendData = sendData + 3;
    mySwitch.send(sendData, 24);
    digitalWrite(pinLED, LOW);      
  } else if(digitalRead(pinButtonC3) == HIGH){
    digitalWrite(pinLED, HIGH);
    sendData = senderId * 100;
    sendData = sendData + 4;
    mySwitch.send(sendData, 24);
    digitalWrite(pinLED, LOW);    
  }
    
}

Da du die Taster auf High abfragst, brauchst du an den Eingängen einen Pulldown Widerstand. Hast du den vorgesehen?

Edit Sorry hatte ich überlesen. Ist der auch auf allen Eingängen? Wie lang ist das Kabel zu den Tastern.

Die Leitungslänge zum Taster ist sehr kurz, da ich das ganze aktuell auf einem Breadboard aufgebaut habe.

Das war der Fehler: Da ich das ganze testweise nur mit einem Button gemacht habe, aber die anderen softwareseitig schon definiert habe, geht der Code natürlich in die anderen Cases rein...

Danke für den Denkanstoß!

Gerne, wichtig ist, der Fehler ist gefunden.

const int pinButtonC2 = 2; mySwitch.enableTransmit(2);

Sind das nicht der gleiche Pin (oder interpretiere ich die 2. Funktion falsch)? Grüße Uwe

Danke für den Hinweis! Das liegt noch daran, dass ich zuerst einen Attiny85 verwendet habe - bis noch ein Button hinzu kam und somit die I/Os nicht mehr gereicht haben.