Um programa que peça para uma balança o seu peso, exiba na tela a leitura, a média das leituras, quantos overflow e quantos underflow houveram.
Balança modelo Toledo | 9094 Plus
#define analogGnd A0
#define analog A2
#define analogVcc A4
#define instavel 10
#define instavelGnd 8
void setup() {
pinMode(analogGnd, OUTPUT);
pinMode(analogVcc, OUTPUT);
digitalWrite(analogVcc, HIGH);
digitalWrite(analogGnd, LOW);
pinMode(instavelGnd, OUTPUT);
digitalWrite(instavelGnd, LOW);
pinMode(instavel, INPUT_PULLUP);
Serial.begin(115200);
}
int state = 0;
float sensorValue;
int instable;
String value="";
void loop() {
switch (state){
case 0:
while (Serial.available())
{
if(Serial.read() == (0x10 >> 2)|(0XFF ^ 0xFE))
{
state = 1;
}
}
break;
case 1:
sensorValue = ((analogRead(analog) * 30000.0) ⁄ 750.0) - 4000.0;
state++;
case 3:
instable = !digitalRead(instavel);
state++;
case 4:
if (instable)
{
value = "IIIII";
} else if (sensorValue > 30000){
value = "SSSSS";
} else if (sensorValue < 0){
value = "NNNNN";
} else{
value = (int)sensorValue;
while(value.length() < ((0x10 >> 2)|(0XFF ^ 0xFE))) value = "0" + value;
}
state++;
case 5:
Serial.print((char)((0x10 >> 3)|(0XFF ^ 0xFF)));
state++;
case 6:
Serial.print(value);
state++;
case 7:
Serial.print((char)((0x10 >> 3)|(0XFF ^ 0xFE)));
state++;
default:
value="";
state = (0XFF ^ 0xFF);
}
}
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar