I need someone to check my code please. It’s working but the way I need. It supp
ID: 2291140 • Letter: I
Question
I need someone to check my code please. It’s working but the way I need. It suppose to make a different tone with each LED please I really need helpint potPin=A0;// Potentiometer is connected to analog pin number 0 int ledPin1=4;// first LED attached to pin 4 int ledPin2=5;// second LED attached to pin 5 int ledPin3=6;// third LED attached to pin 6 int ledPin4=7;// fourth LED attached to pin 7 int ledPin5=8;// fifth LED attached to pin 8 int piezoSpeaker=9;// attach piezospeaker in pin 9 int val;// variable to hold potentiometer reading int newVal;// variable to store modified value void setup() { // put your setup code here, to run once: pinMode (A0, INPUT);//set pin Ao as input pinMode (ledPin1, OUTPUT);//set pin 4 as output pinMode (ledPin2, OUTPUT);//set pin 5 as output pinMode (ledPin3, OUTPUT);//set pin 6 as output pinMode (ledPin4, OUTPUT);//set pin 7 as output pinMode (ledPin5, OUTPUT);//set pin 8 as output pinMode (piezoSpeaker, OUTPUT);//set pin 9 as output tone (4, 800); tone (5, 1200); tone (6, 1600); tone (7, 2000); tone (8, 2400);
}
void loop() { // put your main code here, to run repeatedly: val=analogRead(potPin); // loop to write on pins, (1024/5 is approx 204 ) // turn on LED 1 and piezospeaker if (val>0 & val <=204){ digitalWrite (ledPin1, HIGH);
digitalWrite (ledPin2, LOW); digitalWrite (ledPin3, LOW); digitalWrite (ledPin4, LOW); digitalWrite (ledPin5, LOW); analogWrite(piezoSpeaker, val/5); tone (piezoSpeaker, 800);
} // turn on LED 2 and piezospeaker if (val>=204 & val <=408){
digitalWrite (ledPin1, LOW); digitalWrite (ledPin2, HIGH); digitalWrite (ledPin3, LOW); digitalWrite (ledPin4, LOW); digitalWrite (ledPin5, LOW); analogWrite(piezoSpeaker, val/4); tone (piezoSpeaker, 1200);
} //turn on LED 3 and piezospeaker if (val>=408 & val <=612){
digitalWrite (ledPin1, LOW); digitalWrite (ledPin2, LOW); digitalWrite (ledPin3, HIGH); digitalWrite (ledPin4, LOW); digitalWrite (ledPin5, LOW); analogWrite(piezoSpeaker, val/3); tone (piezoSpeaker, 1600);
} //turn on LED 4 and piezospeaker if (val>=612 & val <=816){
digitalWrite (ledPin1, LOW); digitalWrite (ledPin2, LOW); digitalWrite (ledPin3, LOW); digitalWrite (ledPin4, HIGH); digitalWrite (ledPin5, LOW); analogWrite(piezoSpeaker, val/2); tone (piezoSpeaker, 2000);
} //turn on LED 5 and speaker if (val>=816 & val <=1023){
digitalWrite (ledPin1, LOW); digitalWrite (ledPin2, LOW); digitalWrite (ledPin3, LOW); digitalWrite (ledPin4, LOW); digitalWrite (ledPin5, HIGH); analogWrite(piezoSpeaker, val); tone (piezoSpeaker, 2400); }
} Embedded Analog project. Worth 40 points Create a sketch in Arduino that will read the potentiometer using the Analog port 0. Scale it so that it will display across a range of 0V to +5V in 5 steps of resolution using digital ports in sequence starting at port 4. Display each step of resolution so that as you dial up and down with the pot, an LED will light for each step. Also play a unique note between 800 Hz to 4,000 Hz for each step through the Piezo speaker. Have the circuit completed and ready to demo on Tuesday 03APR18 along with a printed Sketch with both partners names and student numbers in the comments section at the top. The Sketch will need to be clearly documented and expect to answer questions.
Explanation / Answer
dude!
your code is perfect, except you have to use logical and insted of bitwise and
& -- Bitwise AND
It says if both the inputs are 1, the output is 1, otherwise 0.
&& -- Logical AND
it becomes true only if both the conditions are true.
your corrected code:-
int potPin=A0;// Potentiometer is connected to analog pin number 0
int ledPin1=4;// first LED attached to pin 4
int ledPin2=5;// second LED attached to pin 5
int ledPin3=6;// third LED attached to pin 6
int ledPin4=7;// fourth LED attached to pin 7
int ledPin5=8;// fifth LED attached to pin 8
int piezoSpeaker=9;// attach piezospeaker in pin 9
int val;// variable to hold potentiometer reading
int newVal;// variable to store modified value
void setup() {
// put your setup code here, to run once:
pinMode (A0, INPUT);//set pin Ao as input
pinMode (ledPin1, OUTPUT);//set pin 4 as output
pinMode (ledPin2, OUTPUT);//set pin 5 as output
pinMode (ledPin3, OUTPUT);//set pin 6 as output
pinMode (ledPin4, OUTPUT);//set pin 7 as output
pinMode (ledPin5, OUTPUT);//set pin 8 as output
pinMode (piezoSpeaker, OUTPUT);//set pin 9 as output
tone (4, 800);
tone (5, 1200);
tone (6, 1600);
tone (7, 2000);
tone (8, 2400);
}
void loop() {
// put your main code here, to run repeatedly:
val=analogRead(potPin);
// loop to write on pins, (1024/5 is approx 204 )
// turn on LED 1 and piezospeaker
if (val>0 && val <=204){
digitalWrite (ledPin1, HIGH);
digitalWrite (ledPin2, LOW);
digitalWrite (ledPin3, LOW);
digitalWrite (ledPin4, LOW);
digitalWrite (ledPin5, LOW);
analogWrite(piezoSpeaker, val/5);
tone (piezoSpeaker, 800);
}
// turn on LED 2 and piezospeaker
if (val>=204 && val <=408){
digitalWrite (ledPin1, LOW);
digitalWrite (ledPin2, HIGH);
digitalWrite (ledPin3, LOW);
digitalWrite (ledPin4, LOW);
digitalWrite (ledPin5, LOW);
analogWrite(piezoSpeaker, val/4);
tone (piezoSpeaker, 1200);
}
//turn on LED 3 and piezospeaker
if (val>=408 && val <=612){
digitalWrite (ledPin1, LOW);
digitalWrite (ledPin2, LOW);
digitalWrite (ledPin3, HIGH);
digitalWrite (ledPin4, LOW);
digitalWrite (ledPin5, LOW);
analogWrite(piezoSpeaker, val/3);
tone (piezoSpeaker, 1600);
}
//turn on LED 4 and piezospeaker
if (val>=612 && val <=816){
digitalWrite (ledPin1, LOW);
digitalWrite (ledPin2, LOW);
digitalWrite (ledPin3, LOW);
digitalWrite (ledPin4, HIGH);
digitalWrite (ledPin5, LOW);
analogWrite(piezoSpeaker, val/2);
tone (piezoSpeaker, 2000);
}
//turn on LED 5 and speaker
if (val>=816 && val <=1023){
digitalWrite (ledPin1, LOW);
digitalWrite (ledPin2, LOW);
digitalWrite (ledPin3, LOW);
digitalWrite (ledPin4, LOW);
digitalWrite (ledPin5, HIGH);
analogWrite(piezoSpeaker, val);
tone (piezoSpeaker, 2400);
}
}