Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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&lt;iostream&gt;
#include&lt;cstdio&gt;
#include&lt;cstdlib&gt;
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-&gt;info = value;
temp-&gt;next = NULL;
temp-&gt;prev = NULL;
come temp;
}
/*
*INSERTS component AT starting
*/
void double_clist::insert_begin()
{
int value;
cout&lt;&lt;endl&lt;&lt;"Enter the component to be inserted: ";
cin&gt;&gt;value;
struct node *temp;
temporary worker = create_node(value);
if (start == last &amp;&amp; begin == NULL)
{
cout&lt;&lt;"Element inserted in empty list"&lt;&lt;endl;
begin = last = temp;
start-&gt;next = last-&gt;next = NULL;
start-&gt;prev = last-&gt;prev = NULL;
}
else
{
temp-&gt;next = start;
start-&gt;prev = temp;
begin = temp;
start-&gt;prev = last;
last-&gt;next = start;
cout&lt;&lt;"Element inserted"&lt;&lt;endl;
}
}

/*
*INSERTS ELEMNET ultimately
*/
void double_clist::insert_last()
{
int value;
cout&lt;&lt;endl&lt;&lt;"Enter the component to be inserted: ";
cin&gt;&gt;value;
struct node *temp;
temporary worker = create_node(value);
if (start == last &amp;&amp; begin == NULL)
{
cout&lt;&lt;"Element inserted in empty list"&lt;&lt;endl;
begin = last = temp;
start-&gt;next = last-&gt;next = NULL;
start-&gt;prev = last-&gt;prev = NULL;
}
else
  
}
/*
*INSERTS component AT POSITION
*/
void double_clist::insert_pos()
{
int value, pos, i;
cout&lt;&lt;endl&lt;&lt;"Enter the component to be inserted: ";
cin&gt;&gt;value;
cout&lt;&lt;endl&lt;&lt;"Enter the postion of component inserted: ";
cin&gt;&gt;pos;
struct node *temp, *s, *ptr;
temporary worker = create_node(value);
if (start == last &amp;&amp; begin == NULL)
{
if (pos == 1)
{
begin = last = temp;
start-&gt;next = last-&gt;next = NULL;
start-&gt;prev = last-&gt;prev = NULL;
}
else
  
ptr-&gt;next = s-&gt;next;
s-&gt;next-&gt;prev = ptr;
if (pos == counter)
  
counter--;
free(s);
cout&lt;&lt;"Element Deleted"&lt;&lt;endl;
}
/*
* Update price of a selected node
*/
void double_clist::update()
{
int value, i, pos;
if (start == last &amp;&amp; begin == NULL)
  
s-&gt;info = value;
cout&lt;&lt;"Node Updated"&lt;&lt;endl;
}
/*
* Search component within the list
*/
void double_clist::search()
zero, value, i;
bool flag = false;
struct node *s;
if (start == last &amp;&amp; begin == NULL)
  
last = start;
begin = p1;
cout&lt;&lt;"List Reversed"&lt;&lt;endl;      
}