int green1=8; int green2=7; int yellow1=10; int yellow2=6; int red1=4; int red2=
ID: 3836475 • Letter: I
Question
int green1=8;
int green2=7;
int yellow1=10;
int yellow2=6;
int red1=4;
int red2=5;
int blue=9;
int emergancy=A0;
const int button1=2;
int brightness= 250;
int fadeAmount= 5;
const int button2=3;
volatile int buttonState;
volatile int buttonState2;
volatile byte state = LOW;
void setup() {
// put your setup code here, to run once:
pinMode(green1, OUTPUT);
pinMode(green2, OUTPUT);
pinMode(yellow1, OUTPUT);
pinMode(yellow2, OUTPUT);
pinMode(red1, OUTPUT);
pinMode(red2, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(button1),crosswalk, CHANGE);
attachInterrupt(digitalPinToInterrupt(button2),night,CHANGE);
attachInterrupt(emergancy, IncrementPulseCount, RISING);
Serial.begin(9600);
}
void loop() {
int k=analogRead(emergancy);
Serial.println(k);
if(k>830){
digitalWrite(red1,HIGH);
digitalWrite(red2,HIGH);
digitalWrite(green1,LOW);
digitalWrite(green2,LOW);
digitalWrite(yellow1,LOW);
digitalWrite(yellow2,LOW);
Serial.println("Red light");
}
else {
Lights();}
//nightTime();
}
void Lights(){
//int k=digitalRead(emergancy);
// if(k==1){
// digitalWrite(red1,HIGH);
// digitalWrite(red2,HIGH);
// digitalWrite(green1,LOW);
// digitalWrite(green2,LOW);
// digitalWrite(yellow1,LOW);
// digitalWrite(yellow2,LOW);
// delay(500);
// }
// else{
digitalWrite(green1, HIGH);
digitalWrite(yellow1,LOW);
digitalWrite(red1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
newdelay(2500);
// if (k==1){
// digitalWrite(red1,HIGH);
// digitalWrite(red2,HIGH);
// digitalWrite(green1,LOW);
// digitalWrite(green2,LOW);
// digitalWrite(yellow1,LOW);
// digitalWrite(yellow2,LOW);
// delay(500);}
// else{
digitalWrite(green1, LOW);
digitalWrite(yellow1,HIGH);
digitalWrite(red1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
newdelay(1000);
//if (k==1){
// digitalWrite(red1,HIGH);
// digitalWrite(red2,HIGH);
// digitalWrite(green1,LOW);
// digitalWrite(green2,LOW);
// digitalWrite(yellow1,LOW);
// digitalWrite(yellow2,LOW);
// delay(500);}
// else{
digitalWrite(green1, LOW);
digitalWrite(yellow1,LOW);
digitalWrite(red1,HIGH);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
newdelay(1000);
//if (k==1){
// digitalWrite(red1,HIGH);
// digitalWrite(red2,HIGH);
// digitalWrite(green1,LOW);
// digitalWrite(green2,LOW);
// digitalWrite(yellow1,LOW);
// digitalWrite(yellow2,LOW);
// delay(500);}
// else{
digitalWrite(green1, LOW);
digitalWrite(yellow1,LOW);
digitalWrite(red1,HIGH);
digitalWrite(red2,LOW);
digitalWrite(yellow2,LOW);
digitalWrite(green2,HIGH);
newdelay(2500);
//if (k==1){
// digitalWrite(red1,HIGH);
// digitalWrite(red2,HIGH);
// digitalWrite(green1,LOW);
// digitalWrite(green2,LOW);
// digitalWrite(yellow1,LOW);
// digitalWrite(yellow2,LOW);
// delay(500);}
// else{
digitalWrite(green1, LOW);
digitalWrite(yellow1,LOW);
digitalWrite(red1,HIGH);
digitalWrite(red2,LOW);
digitalWrite(yellow2,HIGH);
digitalWrite(green2,LOW);
newdelay(1000);
//if (k==1){
// digitalWrite(red1,HIGH);
// digitalWrite(red2,HIGH);
// digitalWrite(green1,LOW);
// digitalWrite(green2,LOW);
// digitalWrite(yellow1,LOW);
// digitalWrite(yellow2,LOW);
// delay(500);}
// else{
digitalWrite(green1, LOW);
digitalWrite(yellow1,LOW);
digitalWrite(red1,HIGH);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
newdelay(1000);
}
void IncrementPulseCount(){
digitalWrite(red1,HIGH);
digitalWrite(red2,HIGH);
}
void crosswalk(){
buttonState = digitalRead(button1);
{
digitalWrite(green1, LOW);
digitalWrite(yellow1,LOW);
digitalWrite(red1,HIGH);
digitalWrite(red2,HIGH);
digitalWrite(yellow2,LOW);
digitalWrite(green2,LOW);
}
int y=1;
while (y<2)
{
static unsigned long last_interrupt_time = 0;
unsigned long interrupt_time = millis();
if(interrupt_time-last_interrupt_time >200)
{digitalWrite(blue, HIGH);
newdelay(250);
digitalWrite(blue, LOW);
newdelay(250);
digitalWrite(blue,HIGH);
newdelay(250);
digitalWrite(blue,LOW);
newdelay(250);
digitalWrite(blue,HIGH);
newdelay(250);
digitalWrite(blue,LOW);
newdelay(100);
digitalWrite(blue,HIGH);
newdelay(100);
digitalWrite(blue,LOW);
newdelay(100);
}
last_interrupt_time = interrupt_time;
break;
}
}
void newdelay(int x){
for(int i = 0; i <= x; i++)
{
delayMicroseconds(1000);
}
}
void night()
{
buttonState2= digitalRead(button2);
digitalWrite(green1, LOW);
digitalWrite(yellow1,LOW);
digitalWrite(red1,LOW);
digitalWrite(red2,HIGH);
digitalWrite(green2,LOW);
int z=1;
while (z<2){
static unsigned long last_interrupt_time=0;
unsigned long interrupt_time=millis();
if(interrupt_time-last_interrupt_time>200)
{
digitalWrite(yellow1, HIGH);
newdelay(500);
digitalWrite(yellow1, LOW);
newdelay(500);
digitalWrite(yellow1, HIGH);
newdelay(500);
digitalWrite(yellow1, LOW);
newdelay(500);
digitalWrite(yellow1, HIGH);
newdelay(500);
digitalWrite(yellow1, LOW);
newdelay(500);
}
last_interrupt_time=interrupt_time;
break;
}
}
This is a code for a traffic light using an arduino with the C++ language and I need someone to explain practically every line of code. Im having a hard time understanding the code in its entirety so if anyone can help me that would be great.
Explanation / Answer
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
/*
* Node Declaration
*/
struct node
*start, *last;
int counter = 0;
/*
* category Declaration
*/
class double_clist
begin = NULL;
last = NULL;
}
};
/*
* Main: Contains Menu
*/
int main()
worker = new(struct node);
temp->info = value;
temp->next = NULL;
temp->prev = NULL;
come temp;
}
/*
*INSERTS component AT starting
*/
void double_clist::insert_begin()
{
int value;
cout<<endl<<"Enter the component to be inserted: ";
cin>>value;
struct node *temp;
temporary worker = create_node(value);
if (start == last && begin == NULL)
{
cout<<"Element inserted in empty list"<<endl;
begin = last = temp;
start->next = last->next = NULL;
start->prev = last->prev = NULL;
}
else
{
temp->next = start;
start->prev = temp;
begin = temp;
start->prev = last;
last->next = start;
cout<<"Element inserted"<<endl;
}
}
/*
*INSERTS ELEMNET ultimately
*/
void double_clist::insert_last()
{
int value;
cout<<endl<<"Enter the component to be inserted: ";
cin>>value;
struct node *temp;
temporary worker = create_node(value);
if (start == last && begin == NULL)
{
cout<<"Element inserted in empty list"<<endl;
begin = last = temp;
start->next = last->next = NULL;
start->prev = last->prev = NULL;
}
else
}
/*
*INSERTS component AT POSITION
*/
void double_clist::insert_pos()
{
int value, pos, i;
cout<<endl<<"Enter the component to be inserted: ";
cin>>value;
cout<<endl<<"Enter the postion of component inserted: ";
cin>>pos;
struct node *temp, *s, *ptr;
temporary worker = create_node(value);
if (start == last && begin == NULL)
{
if (pos == 1)
{
begin = last = temp;
start->next = last->next = NULL;
start->prev = last->prev = NULL;
}
else
ptr->next = s->next;
s->next->prev = ptr;
if (pos == counter)
counter--;
free(s);
cout<<"Element Deleted"<<endl;
}
/*
* Update price of a selected node
*/
void double_clist::update()
{
int value, i, pos;
if (start == last && begin == NULL)
s->info = value;
cout<<"Node Updated"<<endl;
}
/*
* Search component within the list
*/
void double_clist::search()
zero, value, i;
bool flag = false;
struct node *s;
if (start == last && begin == NULL)
last = start;
begin = p1;
cout<<"List Reversed"<<endl;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.