Les 9(Serieel communiceren tussen 2 Arduino's)

Alleen lezen

Moderator: pe1br

Post Reply
pe1br
Posts: 66
Joined: Thu Apr 14, 2016 3:37 am

Les 9(Serieel communiceren tussen 2 Arduino's)

Post by pe1br »

Les10-1:

Deze les ga je samen doen met je buurman.

Zorg er voor dat je alle voedingsspanningen los koppelt (usb niet aangesloten op de pc en geen power adapter aangesloten op de voedingsplug).
sluit samen beide Arduino's aan volgens onderstaand schema:


Start het Arduino programma en sluit de USB kabel aan.
Op de arduino met de buttons (bovenste) typ de volgende code over of kopieer deze naar de arduino ide:

Code: Select all

int button1 = 2;  //button 1 verbonden aan pin 2
int button2 = 6;  //button 2 verbonden aan pin 6

void setup() {
  Serial.begin(9600); //baudrate serial
  pinMode(button1, INPUT_PULLUP); //button1 input en pullup
  pinMode(button2, INPUT_PULLUP); //button2 input en pullup
}

void loop() {
  if (digitalRead(button1) == LOW) Serial.println("1"); //Als button1 laag is (gnd) stuur een 1
  else Serial.println("8");                             //anders stuur een 8
  delay(100);                                           //wacht 100ms
  if (digitalRead(button2) == LOW) Serial.println("2"); //Als button2 laag is (gnd) stuur een 2
  else Serial.println("9");                             //anders stuur een 9
  delay(100);                                           //wacht 100 ms
}
Start het Arduino programma en sluit de USB kabel aan.
Op de arduino met de leds (onderste) typ de volgende code over of kopieer deze naar de arduino ide:

Code: Select all

int led1 = 8; //led1 verbonden aan pin 8
int led2 = 12; //led 2 verbonden aan pin 12

void setup() {
  Serial.setTimeout(10); //timeout serial monitor 
  Serial.begin(9600); //baudrate serial
  pinMode(led1, OUTPUT); //led1 (pin 8) output
  pinMode(led2, OUTPUT); //led2 (pin 12) output
}

void loop() {
  if (Serial.available() > 0) { //controleer of er serial data beschikbaar is
    String incoming_serial; //maak een container voor serial data
    incoming_serial=Serial.readString(); //stop de serial data in de container
    if (incoming_serial.startsWith("1")) digitalWrite(led1, HIGH); //als de data begint met 1 zet led 1 aan 
    if (incoming_serial.startsWith("2")) digitalWrite(led2, HIGH); //als de data begint met 2 zet led 2 aan 
    if (incoming_serial.startsWith("8")) digitalWrite(led1, LOW);  //als de data begint met 8 zet led 1 uit 
    if (incoming_serial.startsWith("9")) digitalWrite(led2, LOW);  //als de data begint met 9 zet led 2 uit 
  }
}
Als je nu op de knopjes drukt van de eerste Arduino zullen de leds op de 2de Arduino hierop reageren.
Attachments
les-9-1_bb.jpg
(1.33 MiB) Downloaded 1 time
Post Reply