ich habe ein Arduino Programm erstellt, und hätte jetzt gerne, dass wenn ich meinen Schalter drücke, die Led und der Piezo Summer anfangen, zu leuchten bzw. piepsen. Nur habe ich keine Ahnung wie das gehen soll, da ich ja keine void loop in einer void loop machen kann.
Weiß jemand einen Rat?
const int switchPin = 2;
const int ledPin = 3;
const int reset = 4;
int ein;
int aus;
int letzterEin;
int Led;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(switchPin, INPUT);
Serial.begin(9600);
}
void loop() {
ein = digitalRead(switchPin);
aus = digitalRead(reset);
if(aus==HIGH){
ein=LOW;
Led = LOW;
noTone(8);
}
if(ein==HIGH){
aus=LOW;
Led = HIGH;
tone(8, 50);
}
digitalWrite(ledPin, Led);
}
ich habe ein Arduino Programm erstellt, und hätte jetzt gerne, dass wenn ich meinen Schalter drücke, die Led und der Piezo Summer anfangen, zu leuchten bzw. piepsen. Nur habe ich keine Ahnung wie das gehen soll, da ich ja keine void loop in einer void loop machen kann.
Weiß jemand einen Rat?
Ist das ein passiver Piezo-Lautsprecher(Transducer), den Du mit der tone() Funktion in verschiedenen Frequenzen piepsen lassen kannst?
Oder ist das ein aktiver Piezo-Alarmgeber, den Du nur einschalten kannst,und dann piepst er mit einer selbsterzugten Fequenz, die Du nicht beeinflussen kannst? Hasst Du das getestet?
zu finden in den Beispielen der Arduino IDE
unter 02 Digital.
Blink without delay():
Unter den Befehl "Licht an" kann man auch noch
den Befehl "Ton An" setzen.
Unter den Befehl "Licht aus" kann man den Befehl
"Ton aus" setzen.
Wenn das klappt, kannst Du den Inhalt Deiner loop()
Funktion in das Beispiel "Button" einbauen.
Etwa HIER: (nur ein Ausschnitt)
if (buttonState == HIGH) {
// turn LED on:
//DAS DA WEG -> digitalWrite(ledPin, HIGH);
//dafür HIER DEINE Pieps / Blink Funktion hin
} else {
Du hast tatsächlich nur einen "void loop" zur Verfügung.
Doch die Funktion ist sehr schnell. Daher kann man es hinbekommen,
dass (es so aussieht als ob) mehrere Dinge gleichzeitig geschehen.