Moin,
gestern kam mein Arduino Uno Rev 3 und ich musste sofort anfangen zu experimentieren.
Am Ende meines ersten Projektes sollen durch verschiedene Ereignisse am PC (Linux Mint) unterschiedliche EL Kabel an bzw. aus gehen.
Mein derzeitiger Stand ist, dass ich über das Terminal Befehle sende und der Arduino sie ausführt.
echo -n [Pin] > /dev/ttyACM0
Das Problem ist, dass das nur funktioniert, wenn der Serial Monitor aufgerufen wird. Könntet ihr mal einen Blick über meinen Sketch werfen? Die auskommentierten Zeilen sind/waren fürs debuggen.
Wenn das alles funktioniert sollen bswp. die E-Mail Benachrichtigung eine rote LED anstellen, vielleicht weiß auch jemand wo ich die Desktop-Notifications unter Linux Mint Cinnamon abfangen kann.
/* Anschaltbare LEDs an Pin 2-5*/
int prevIncomingByte = NULL;
int incomingByte = NULL;
int prevLedMode = LOW;
int ledMode = LOW;
void setup(){
/*Pins erstellen*/
for (int pin = 2; pin <= 5; pin++){
pinMode(pin, OUTPUT);
}
/*Serielle Verbindung mit 9600 Bauds aufbauen*/
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0){
// Serial.print(prevIncomingByte);
// Serial.println(prevLedMode);
/*Eingabe speichern & Status lesen*/
incomingByte = (Serial.read() - 48);
ledMode = digitalRead(incomingByte);
// Serial.print(incomingByte,DEC);
// Serial.println(ledMode,DEC);
toogle();
/*Zum Ausschalten in weitere Var abspeichern*/
prevIncomingByte = incomingByte;
prevLedMode = digitalRead(prevIncomingByte);
// Serial.print(prevIncomingByte);
// Serial.println(prevLedMode);
}
}
void toogle(){
/*Wenn vorherige LED an, ausschalten*/
if (prevLedMode == 1){
// Serial.println("IF");
digitalWrite(prevIncomingByte, LOW);
}
/*Wenn gesetzte LED aus, anschalten*/
if (ledMode == 0){
// Serial.println("IF");
digitalWrite(incomingByte, HIGH);
}
}
