Beste Tweakers,
Met mijn nieuwe code heb ik (voor zo ver ik het kan) commentaar bij geschreven. Ik heb de code voor de helft werkend.
Wat maak ik?
Een draadloos stoplicht. TX verzend berichtjes naar de RX om de kleur te veranderen.
Wat werkt er?
De TX verzend een bericht en de RX ontvangt dit bericht netjes en voert het daarbij behorende inhoud uit.
Wat werkt er niet?
Als ik de delay in de RX code zet werkt het stoplicht naar behoren. Het is echter de bedoeling om meerdere nodes toe te voegen. na enkele minuten lopen de stoplichten niet meer gelijk. Nu wilde ik de delay in de TX node plaatsen. Maar verzend de TX geen berichten meer? iemand een idee wat ik niet goed doe? Voor mijn gevoel ben ik dicht bij een oplossing maar ik krijg hem niet gevonden
Alvast bedankt.
TX
RX code
Met mijn nieuwe code heb ik (voor zo ver ik het kan) commentaar bij geschreven. Ik heb de code voor de helft werkend.
Wat maak ik?
Een draadloos stoplicht. TX verzend berichtjes naar de RX om de kleur te veranderen.
Wat werkt er?
De TX verzend een bericht en de RX ontvangt dit bericht netjes en voert het daarbij behorende inhoud uit.
Wat werkt er niet?
Als ik de delay in de RX code zet werkt het stoplicht naar behoren. Het is echter de bedoeling om meerdere nodes toe te voegen. na enkele minuten lopen de stoplichten niet meer gelijk. Nu wilde ik de delay in de TX node plaatsen. Maar verzend de TX geen berichten meer? iemand een idee wat ik niet goed doe? Voor mijn gevoel ben ik dicht bij een oplossing maar ik krijg hem niet gevonden
Alvast bedankt.
TX
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
| /* Code For Wireless traffic light Transceiver. Head node sends signal to 3 other nodes in a star network */ #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" int msg[1]; // Send over package message RF24 radio(9,10); // Set up nRF24L01 radio on SPI bus plus pins 9 & 10 const uint64_t pipe = 0xE8E8F0F0E1LL; // Radio pipe addresses for the 2 nodes to communicate. int red = 5; // LED red on pin 7 int orange = 4; // LED orange on pin 6 int green = 3; // LED green on pin 5 void setup(void){ //Setup and configure rf radio Serial.begin(9600); radio.begin(); radio.openWritingPipe(pipe); // Open pipe to other nodes for communication pinMode (red, OUTPUT); // Pinmode for LED OUTPUT pinMode (orange, OUTPUT); // Pinmode for LED OUTPUT pinMode (green, OUTPUT);} // Pinmode for LED OUTPUT void loop(void){ digitalWrite(red, HIGH); //starting red HIGH if (digitalRead(red) == HIGH)delay(1000);{{ // If red is HIGH Send Message 001 for 1 second msg[0] = 001; radio.write(msg, 1);} //write msg digitalWrite(orange, HIGH); //starting red HIGH if (digitalRead(orange) == HIGH)delay(1000);{ // If orange is HIGH Send Message 002 for 1 second msg[0] = 002; // radio.write(msg, 1);} //write msg digitalWrite(green, HIGH); //starting red HIGH if (digitalRead(green) == HIGH)delay(1000);{ // If red is HIGH Send Message 003 for 1 second msg[0] = 003; radio.write(msg, 1); //write msg } }} |
RX code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| /* Code For Wireless traffic light Receiver. Head node sends signal to 3 other nodes in a star network */ #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" int msg[1]; // Send over package message RF24 radio(9,10); // Set up nRF24L01 radio on SPI bus plus pins 9 & 10 const uint64_t pipe = 0xE8E8F0F0E1LL; // Radio pipe addresses for the 2 nodes to communicate. int red = 5; // LED red on pin 7 int orange = 4; // LED orange on pin 6 int green = 3; // LED green on pin 5 void setup(void){ //Setup and configure rf radio Serial.begin(9600); radio.begin(); radio.openReadingPipe(1,pipe); //Open pipe to base node for communication radio.startListening(); //Starting to listen to base node delay(40); pinMode (red, OUTPUT); // Pinmode for LED OUTPUT pinMode (orange, OUTPUT); // Pinmode for LED OUTPUT pinMode (green, OUTPUT);} // Pinmode for LED OUTPUT void loop(void){ if (radio.available()){ // if Radio available start Communication bool done = false; while (!done){ done = radio.read(msg, 1); // if done read msg Serial.println(msg[0]); // print msg if (msg[0] == 001){delay(10); // if msg 0 is 001 light red will start digitalWrite(red, HIGH); digitalWrite(orange, LOW); digitalWrite(green, LOW); // delay(1000);} if (msg[0] == 002){delay(10);// if msg 0 is 002 light orange will start digitalWrite(red, LOW); digitalWrite(orange, HIGH); digitalWrite(green, LOW); // delay(1000);} if (msg[0] == 003){delay(10);// if msg 0 is 001 light red will start digitalWrite(red, LOW); digitalWrite(orange, LOW); digitalWrite(green, HIGH); // delay(1000);} }} else{Serial.println("No radio available");}} |
Veiligheid staat voor op http://www.juniorverkeerslichten.nl