ich habe folgendes Problem und zwar würde ich gerne den printIn "Hello World" erst senden wenn ich eine taste drücke. es funktioniert aber nicht sondern sendet dauernd automatisch.
könnt ihr mir bitte helfen.
MfG
Kai
// attiny85 uses software serial #include <SoftwareSerial.h>
Nimm doch den IDE Beispiel-Sketch und bastle ihn etwas um:
/*
Input Pullup Serial
This example demonstrates the use of pinMode(INPUT_PULLUP). It reads a
digital input on pin 2 and prints the results to the serial monitor.
The circuit:
* Momentary switch attached from pin 2 to ground
* Built-in LED on pin 13
Unlike pinMode(INPUT), there is no pull-down resistor necessary. An internal
20K-ohm resistor is pulled to 5V. This configuration causes the input to
read HIGH when the switch is open, and LOW when it is closed.
created 14 March 2012
by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/InputPullupSerial
This example code is in the public domain
*/
void setup() {
//start serial connection
Serial.begin(9600);
//configure pin2 as an input and enable the internal pull-up resistor
pinMode(2, INPUT_PULLUP);
pinMode(13, OUTPUT);
}
void loop() {
//read the pushbutton value into a variable
int sensorVal = digitalRead(2);
//print out the value of the pushbutton
Serial.println(sensorVal);
// Keep in mind the pullup means the pushbutton's
// logic is inverted. It goes HIGH when it's open,
// and LOW when it's pressed. Turn on pin 13 when the
// button's pressed, and off when it's not:
if (sensorVal == HIGH) {
digitalWrite(13, LOW);
}
else {
digitalWrite(13, HIGH);
}
}
Und merk dir, dass du den Text schon gesendet hast, bis zum nächsten Taster loslassen
Das ist besser als den Taster über eine Sekunde lang drücken zu müssen, bis er wieder gelesen wird...
zur info ich benutze nur arduino IDE. ich versuche einen ATTiny85 so zu programmieren das ich eine taste drücke und er mir dann das Hello World auf dem PC in RealTerm anzeigt. auf dem Board was ich benutzte is noch ne LED die leuchtet wenn ich den taster drücke!
Eigentlich reicht es, den Strichpunkt nach der IF-Abfrage zu löschen.
Aber so ist es sicherer:
void loop() {
if (digitalRead(taster) == HIGH){
_bluetoothSerial.println("Hello Zero Tiny!");
}
// delay for 1 second
delay(1000);
}
Warum?
Die IF-Abfrage wirkt auf die erste Anweisung nach der schliessenden Klammer ")".
Wenn da dann steht ");" dann ist der Strichpunkt die erste - leere - Anweisung.
Alles, was in geschweiften Klammern "{ ..}" ist, wird als EINE Anweisung gesehen.