from this sketch i can read analog value each case for once value i think Serial.read read the oldest byte but i want to read from present byte like without its how can i setting this ?
const int ledPin = 13;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(9, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
int sensorValue1 = analogRead(A0);
int sensorValue2 = analogRead(A1);
int sensorValue3 = analogRead(A2);
int light_sensitivity = 500;
int incomingByte;
// read the oldest byte in the serial buffer:
incomingByte = Serial.read();
switch (incomingByte) {
case 'a':
Serial.println(sensorValue1);
break;
case 'b':
Serial.println(sensorValue2);
break;
case 'c':
Serial.println(sensorValue3);
break;
case 'H':
digitalWrite(ledPin, HIGH);
break;
case 'L':
digitalWrite(ledPin, LOW);
break;
}
if (sensorValue3 < light_sensitivity)
{
digitalWrite(9, HIGH);
}
else
{
digitalWrite(9, LOW);
}
delay(300);
}
}
from this program , e.g. when i type 'a' and send in serial monitor this monitoring one value (not continuous) and i try to use for , while but its monitoring one value repeat not change when i change the value (from Potentiometer)
i want its to read value continuous not one value .
mickeleckorn:
from this sketch i can read analog value each case for once value i think Serial.read read the oldest byte but i want to read from present byte like without its how can i setting this ?
I suspect English is not your first language and I am doing my best to understand your question - but I can't.
As it is written the program will send back the value from a single read whenever you press the appropriate letter. And this will be the "present" value of that sensor. If you want it to send back several values you will have to change the program so that there is a loop of reads associated with each key press. If you want it to send back a continuous stream of values you will have to have a program on your PC to use the data. If you explain how you intend to use the data it may help to understand what you are trying to do.
However I'm not even sure that that's what you want because you seem to be saying that even with a single read it is not showing different values when you move the potentiometer. If that is the problem there may be several reasons including possible wiring errors. You will need to give us a diagram of your circuit.
...R
mickeleckorn:
from this program , e.g. when i type 'a' and send in serial monitor this monitoring one value (not continuous) and i try to use for , while but its monitoring one value repeat not change when i change the value (from Potentiometer)
i want its to read value continuous not one value .
when i don't read from serial.read this program work well (use analogRead)
i think this problem is in serial.read can receive only one data , when i rotate the potentiometer and send 'a' again value is changed but i want to send 'a' once and program monitoring continuous likes to use analogRead.
As it is currently written your program will only read the analogue inputs whilst there is something in the serial buffer.
Is that how you want it to work ?
The problem with your program, is that it is only going to read the analog inputs, when there is a character from
you arriving at the Arduino's serial input.
So unless you send characters to the arduino very often, you won't get a reading very often.
I'm not sure what you're trying to do, but is it: read a character from serial and then keep sending the analog reading it selected?
If so, you need to shorten the first if statement so that all it does is check for serial.available and read a character if one is there.
All the rest of your code needs to run every time loop runs. As you have it, all your code is controlled by serial.avaialble. If there's no serial input, nothing else happens.