Hallo,
ich würde einen Arduino Uno gerne dazu bringen, einen Befehl beim drücken eines Tasters, welcher sich an Eingang 2 befindet über einen MAX232 auszugeben.
Der MAX232 (als Shield ausgeführt) hängt an den Anschlüssen 0 und 1.
Is so Einer: http://images.villageorigin.com/003602-008/001.jpg%3Fs%3D300
Folgender Sketch führt dazu, dass beim Drücken des Tasters im seriellen Monitor der Arduino-Software "RTE 1" angezeigt wird.
Schließe ich den Arduino an ein USB-Netzteil an, leuchtet die TX-LED auf dem Board beim drücken des Tasters nicht und es wird scheinbar somit kein Befehl gesandt. Auch beim Anschluss von 12V ist dies der Fall.
In sämtlichen Fällen reagiert das angeschlossene Gerät nicht auf den gesandten Befehl. Im Anhang ein Ausschnitt aus der Bedienungsanleitung.
Somit bestehen also zwei Probleme:
1. Arduino sendet keine Befehle, wenn nicht an Computer angeschlossen.
2. Gerät reagiert in keinem Fall.
Hat mir jmd. u.U. Tipps?
Gruß Chris
/* Testsketch mit Taster über 100 Ohm an Anschluss 2.
* 10 kOhm Widerstand an Masse.
* 5V Speisung hart am Schalter.
*/
#include <Bounce.h> // Bouncing-Library hinzugefügt
int Knopf_1 = 2; // Knopf_1 ist am Anschluss 2
int Knopf_2 = 3;
int Knopf_3 = 4;
int Knopf_SDI = 5;
int Knopf_Logo = 6;
int LED_1 = 8; // Eine LED hängt am Anschluss 8
int val_1; // Bouncerrückgabewert für Input1
int Knopf_1_State;
Bounce Knopf_1_Bouncer = Bounce( Knopf_1,5); // 5 ms Bouncing für Knopf_1
void setup()
{
pinMode(Knopf_1,INPUT); // Anschluss 2 soll ein Eingang sein.
pinMode(LED_1,OUTPUT); // Anschluss 8 soll ein Ausgang sein.
Serial.begin(38400); // Serieller Anschluss mit 38400bps aktivieren.
}
void loop()
{
Knopf_1_Bouncer.update ( ); // Abfrage des "Knopf_1_Bouncer"-Wertes.
val_1 = Knopf_1_Bouncer.read(); // Bouncerrückgabewert für Knopf_1 wird in "val_1" gespeichert
if (val_1 != Knopf_1_State) // Nur dann (<-!), wenn sich der eingelesene Bouncerrückgabewert (also "val_1") gegenüber "Knopf_1_State" geändert hat..
{
if (val_1 == HIGH) // ..und dieser nun "HIGH" ist..
{
Serial.flush(); // Seriellen Empfangspuffer leeren
Serial.println("RTE 1"); // ..soll den Image aufgrund des Befehls "RTE 1"auf Eingang 1 schalten.
}
}
Knopf_1_State = val_1; // speichern des neuen Zustands in "val_1"
}