Prototype
SYSTEM BLOCK DIAGRAM
PSEUDOCODE
Code
Transmitter
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
const uint64_t deviceID = 0xE8E8F0F0E1LL;
RF24 radio(9,10);
int elephant = 0;
void setup() {
// put your setup code here, to run once:
radio.begin();
radio.setChannel(9);
radio.openWritingPipe(deviceID);
pinMode(4, INPUT); //red
pinMode(3, INPUT); //yellow
pinMode(2, INPUT); //green
Serial.begin(9600);
}
void loop()
{
//Serial.println("abc");
if (digitalRead(4)== HIGH)
{
elephant=12;
}
else if(digitalRead(3)==HIGH)
{
elephant=5;
}
else if(digitalRead(2)==HIGH)
{
elephant=2;
}
Serial.println(elephant);
radio.write(elephant, sizeof(elephant));
}
Reciever
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
const uint64_t deviceID = 0xE8E8F0F0E1LL;
RF24 radio (9,10);
int rocket;
int red = 4;
int yellow = 3;
int green = 2;
void setup()
{
pinMode(4, OUTPUT); //red
pinMode(3, OUTPUT); //yellow
pinMode(2, OUTPUT); //green
radio.begin();
radio.setChannel(9);
radio.openReadingPipe(1,deviceID);
radio.startListening();
Serial.begin(9600);
}
void loop()
{
//if (radio.available()){
radio.read(&rocket, sizeof(rocket));
//Serial.println("def");
Serial.println(rocket);
delay(500);
if (rocket == 12)
{
digitalWrite (yellow, LOW);
digitalWrite (green, LOW);
digitalWrite (red, HIGH);
}
if (rocket == 5)
{
digitalWrite (red, LOW);
digitalWrite (green, LOW);
digitalWrite (yellow, HIGH);
}
if (rocket == 2)
{
digitalWrite (red, LOW);
digitalWrite (yellow, LOW);
digitalWrite (green, HIGH);
}
//}
}
Bill of Materials:
Our project was $6.69 in total. The traffic lights were ordered online, and all other supplies were found in our school's STEM lab.