Hi,
I try to count a HIGH / LOW state of a signal.
The parts of the code (analog signal to digital signal) works.
Count-part in another sketch (standard arduinosketch ButtonStateChange) works
But in the total sketch the count-part don't work.
Anyone an idea? (of course... i'm still a very newbee...)
Below the code
Gr.
Johan
boolean signal;
int sensorvalue;
int signalCounter = 0; // counter for the number of button presses
int signalState = 0; // current state of the button
int lastsignalState = 0; // previous state of the button
void setup(){
Serial.begin(9600);
}
void loop(){
sensorvalue = analogRead(A0);
signalState = digitalRead(signal);
if (sensorvalue == 1006){
signal = HIGH;
}
if (sensorvalue == 0){
signal = LOW;
}
if (signalState != lastsignalState) {
if (signalState == HIGH) {
signalCounter ++;
}
lastsignalState = signalState;
}
Serial.print(sensorvalue);
Serial.print(",");
Serial.print(signal);
Serial.print(",");
Serial.println(signalCounter);
delay(500);
}
Yes, I've thought of this thing too.
I think: the variable signal can be HIGH or LOW. So I named it a boolean. But I understand boolean is a function who give feedback a 0 or 1.
But when I changed to
int signal = 0;
counting even don't working...
Or is the problem that digitalRead only can read out a pin? And not a variable?
How can I readout the HIGH- or LOW state of an variable?
Or is the problem that digitalRead only can read out a pin?
That's what digitalRead does - read the state of a pin. You're telling the function to read from the pin number that Signal holds, which will be 0 or 1. That's bad news because you are using the hardware Serial port, which also uses those pins. Which pin is your button attached to?
Thanks for answers.
That was what I need: a changing-mind-hint...(I believe it isn't good english. )
The sensor (line-tracer-sensor DFRobot)gives a stable analog value at 0 and 1006. So I used it on an analog port.
But now I put it in an digital-port and Arduino recognized it as HIGH and LOW.