Hallo zusammen,
ich habe einen neuen Arduino Nano (ATmega328P) und möchte damit über einen Taster zwischen 3 Modes durchschalten. Der Taster gibt bei Druck Ground auf Pin D5. Bei gedrücktem Taster sollen die Modes nicht wild durchschalten, sondern genau je Tastendruck 1x der Mode gewechselt werden - daher die Konstruktion mit dem "Merken" des Schalterstatus (StatusButtonCh1). Als visuelle Kontrolle schalte ich die interne LED bei Mode 1 & 3 ein.
Folgendes Skript funktioniert:
int ButtonCh1 = 5;
int LEDCh1 = 3;
int PWMCh1 = 0;
int StatusButtonCh1 = 0;
int ModeCh1 = 0; //Modes: 0 = aus, 1 = Modus 1, 2 = Modus 2
//*****************************************************************************************************************************
void setup() {
// put your setup code here, to run once:
pinMode(ButtonCh1, INPUT_PULLUP);
pinMode(LEDCh1, OUTPUT);
pinMode(13, OUTPUT); //internal LED
}
//******************************************************************************************************************************
void loop() {
if (digitalRead(ButtonCh1) == HIGH && StatusButtonCh1 == 1) { // Button unpressed
StatusButtonCh1 = 0;
delay(20);
}
if (digitalRead(ButtonCh1) == LOW && StatusButtonCh1 == 0 && ModeCh1 == 0) {
ModeCh1 = 1;
StatusButtonCh1 = 1;
digitalWrite(13, HIGH);
}
if (digitalRead(ButtonCh1) == LOW && StatusButtonCh1 == 0 && ModeCh1 == 1) {
ModeCh1 = 2;
StatusButtonCh1 = 1;
digitalWrite(13, LOW);
}
if (digitalRead(ButtonCh1) == LOW && StatusButtonCh1 == 0 && ModeCh1 == 2) {
ModeCh1 = 0;
StatusButtonCh1 = 1;
digitalWrite(13, HIGH);
}
}
Wie gesagt, das Skript funktioniert: Beim Durchschalten Tasterdruck 1 - LED an, 2 - LED aus,3 - LED an, 4 -LED an, usw..
Jetzt das komische: Sobald ich in den Modes etwas machen möchte, funktioniert es nichtmehr. (Ich will ein PWM Signal auf PIN D3 ausgeben). Dazu habe ich den folgenden Code angehängt:
if(ModeCh1 = 0){
PWMCh1 = 0;
analogWrite(LEDCh1, PWMCh1);
}
if(ModeCh1 = 1){
PWMCh1 = 250;
analogWrite(LEDCh1, PWMCh1);
}
if(ModeCh1 = 2){
PWMCh1 = 5;
analogWrite(LEDCh1, PWMCh1);
}
Mit dem Zusatz funktioniert aber nichts mehr: Beim Tasterdruck 1 - LED an, und bleibt an - egal was ich mache.
Hat jemand eine Idee, woran das liegen kann??
Danke und Grüße
Doscho