void setup() {
int switchState = 0;
int switchPin = 2;
int const potPin = A0;
int Potval;
//9600 bits per second:
pinMode (potPin, OUTPUT);
pinMode (switchPin, INPUT);
Serial.begin (9600);
}
void loop() {
// put your main code here, to run repeatedly:
int x = 1;
switchState = digitalRead(2);
if (switchState == HIGH);
for (int y = 0; y < 5; y = y + x); {
potVal - analogRead(potPin);
Serial.print("potVal: ");
Serial.println(potVal);
delay(2);
}
Serial.println("Measurement made");
delay(200);
}
Hi, I need some help with programing a code to read the potvalue when i press the button. Im trying to have the raw value be read five times when i press the button, and if i turn the knob it has to read the new raw values again when i press the button.
This is what I have code-wise and I'm bewildered. I have a picture of the arduino uno setup with the potentiometer with A0 and digital pin 2
if (switchState == HIGH);
Oops
potVal - analogRead(potPin);
'=' not '-' ?
potVal also seems to suffer from scope problems.
Why not post the compilation errors?
for (int y = 0; y < 5; y = y + x);
Oops,again
for (int y = 0; y < 5; y = y + x); {
Also oops. You terminated the for loop with a semicolon.
It's not going to do anything useful until you've got it to compile.
Don't declare your variables inside setup() or they will only be available in setup(). Shouldn't potPin be INPUT?
And "if (switchState == HIGH);" means if switchState is HIGH do nothing. Lose the ;.
Steve
int switchState = 0;
int switchPin = 2;
int const potPin = A0;
int Potval;
void setup() {
pinMode (potPin, INPUT);
pinMode (switchPin, OUTPUT);
Serial.begin (9600);
}
void loop() {
int x = 1;
switchState = digitalRead(2); {
if (switchState == HIGH)
for (int i = 0; i < 5; i = i + x) {
Potval = analogRead(potPin)
;Serial.print("Potval: ")
;Serial.println(Potval)
;delay(2)
; }
Serial.println("Measurement made");
delay(200);
}}
Ok I modified the code a little bit, i thought the compiler only did one problem, not all problems. Should be good
nevermind, i think I have it on a loop where I press the button and it will keep stating measurement made
You made the switch pin an output. Slow right down and double check your work. If you pressed the button with that running, you may have destroyed an output on your board.
Subsequently, you use it in only one place but not here:
switchState = digitalRead(2); {
;Serial.print("Potval: ")
Where did you pick up the unusual semicolon use?
There is no reason to give Potval global scope.
Ditto switchstate
int switchState = 0;
int switchPin = 4;
int potPin = A0;
int Potval;
void setup() {
// put your setup code here, to run once:
pinMode (potPin, OUTPUT);
pinMode (switchPin, INPUT);
Serial.begin (9600);
}
void loop() {
// put your main code here, to run repeatedly:
switchState = digitalRead(4);
if (switchState == HIGH) {
Potval = analogRead(potPin);
Serial.print("Potval:");
Serial.println(Potval);
delay(200);
}
else {
(switchState == LOW);
while (Potval);
}
}
For some reason I had to switch the location of the semicolon, but believe I had an error somewhere. So at this point I'm not sure what to do. I changed some things just in case
(switchState == LOW);
while (Potval);
}
}
What's the intention here, please?
TheMemberFormerlyKnownAsAWOL:
(switchState == LOW);
while (Potval);
}
}
What's the intention here, please?
I want the program to not do anything until I press the button
const int switchPin = 2; // Button connected to ditgital pin 2
const int potPin = A0; //Analog pin for potentiometer pin
int switchState = 0; //sets switchstate and potentiometer value at 0
int potVal = 0;
void setup() {
// put your setup code here, to run once:
pinMode(potPin, INPUT); //Have potentiometer AND the switchpin aka button as INPUT:
pinMode(switchPin, INPUT);
Serial.begin(9600); //starting baud count
}
void loop() {
// put your main code here, to run repeatedly:
switchState = digitalRead(switchPin); //will read value from specified digital pin
if (switchState == HIGH) { //if the button is pressed
potVal = analogRead(potPin); //Will read potentiometer pin value
Serial.println(potVal); //puts data into ASCII text
delay(1000); //delay of 1 sec
}
}
Fixed, should be good to go