#define Rele1 7 // Define pino de saida para rele 1
#define Rele2 8 // Define pino de saida para rele 2
const int sensorPin = A0;
float sensorValue_aux = 0;
float sensorValue = 0;
float currentValue = 0;
float voltsporUnidade = 0.0048828125;
int st_rl = 0;
String st_lamp = 0; apresentando erro nessa estring
void setup(){
pinMode(Rele1,OUTPUT);
pinMode(Rele2,OUTPUT);
Serial.begin(9600);
}
void loop(){
char c = Serial.read();
for(int i=500; i>0; i--)
{
sensorValue_aux = (analogRead(sensorPin) -511); // le o sensor na pino analogico A0 e ajusta o valor lido ja que a saída do sensor é vcc/2 para corrente =0
sensorValue += pow(sensorValue_aux,2); // soam os quadardos das leituras no laco
}
sensorValue = (sqrt(sensorValue/ 500)) * voltsporUnidade; // finaliza o calculo da méida quadratica e ajusta o valor lido para volts
currentValue = (sensorValue/66)*1000; // calcula a corrente considerando a sensibilidade do sernsor (66 mV por amper)
if (currentValue < 0.10){
st_lamp = "Lampada apagada";
}
else{
st_lamp = "Lampada ligada";
}
if (c == 's'){
Serial.print ("Valor do st: ");
Serial.print (st_rl);
Serial.print (" Corrente: ");
Serial.print (currentValue);
Serial.print (" Status da lampada: ");
Serial.println (st_lamp);
}
if (c == 'a'){
if (st_rl == 0){
digitalWrite(Rele1, HIGH);
Serial.print ("Valor anterior do st: ");
Serial.print (st_rl);
Serial.print (" Status anterior da lampada: ");
Serial.print (st_lamp);
st_rl = 1;
Serial.print (" Valor do st mudado para: ");
Serial.print (st_rl);
Serial.print (" Status atual da lampada: ");
Serial.println (st_lamp);
}
else{
digitalWrite(Rele1, LOW);
Serial.print ("Valor do st: ");
Serial.print (st_rl);
st_rl = 0;
Serial.print (" Valor do st mudado para: ");
Serial.print (st_rl);
Serial.print (" Status da Lampada: ");
}
}
delay(5000);
}
Tags:
Ronaldo,
String st_lamp = 0
Você está declarando uma variável do tipo String e atribuindo um valor numérico !
Retire "= 0"
A linha ficará assim:
String st_lamp
SDS
Daltro
valeu pela a dica ainda so iniciante
tava aqui estudando um pouco o codigo e editei ele agora ta rodando legal
mais ainda falta muito tenho que coloca pra fazer leitura de 8 sensores acs712 interligado com uma shild eaysvr de comando de voz para acende e apaga as lampadas
#define Rele1 13 // Define pino de saida para rele 1
const int sensorPin = A0;
float sensorValue_aux = 0;
float sensorValue = 0;
float currentValue = 0;
float voltsporUnidade = 0.0048828125;
int st_rl; //declaraçao da string rele
String st_lamp; //declaraçao da string lampada
void setup(){
Serial.begin(9600);
pinMode(Rele1,OUTPUT);}//declaraçao do pino digital 13 como saida
void loop(){
char c = Serial.read();
for(int i=500; i>0; i--)
{
sensorValue_aux = (analogRead(sensorPin) -511); // le o sensor na pino analogico A0 e ajusta o valor lido ja que a saída do sensor é vcc/2 para corrente =0
sensorValue += pow(sensorValue_aux,2); // soam os quadardos das leituras no laco
}
sensorValue = (sqrt(sensorValue/ 500)) * voltsporUnidade; // finaliza o calculo da méida quadratica e ajusta o valor lido para volts
currentValue = (sensorValue/66)*1000; // calcula a corrente considerando a sensibilidade do sernsor (66 mV por amper)
if (currentValue < 0.10){
st_lamp = "= lampada,apagada: ";
}
else{
st_lamp = "= lampada,ligada: ";
}
if (c == 's'){ // // apertando (s) no serial monitor mostrara os status
Serial.print (" Valor do st, ");
Serial.print (st_rl);
Serial.print ("/ Corrente, ");
Serial.print (currentValue);
Serial.print ("/ Status anterior, ");
Serial.println (st_lamp);
Serial.print ("/ Status atual, ");
Serial.println (st_lamp);
}
if (c == 'a'){ // apertando uma vez a letra (a) no serial monitor ligara o Rele 1 apertando novamente desligara
if (st_rl == 0){
digitalWrite(Rele1, HIGH); //ligado
}
else{
st_rl = 0;
digitalWrite(Rele1, LOW);// desligado
}
}
//mostra status a cada 5 segundos
delay(5000);
Serial.print (" Valor do st, ");
Serial.print (st_rl);
Serial.print ("/ Corrente, ");
Serial.print (currentValue);
Serial.print ("/ Status atual, ");
Serial.println (st_lamp);
Ronaldo,
Aqui no laboratório você vai encontrar muitos exemplos com estes componentes... tente entender os códigos e implementa-los aos poucos... uma coisa de cada vez...
Grande abraço
Daltro
eu estudando o codigo e o arduino cosegui multiplica o aciona mento para duas lampadas
vc sabe mim fala se teria como simplifica esse processo?
por que eu simplismenti dupliquei o codigo teria como acresenta mais lampadas sem ter que fazer duplicagem
ja agradeço pelos esclarecimento estou aprendendo muito obrigado
#define Rele1 12 // Define pino de saida para rele 1
#define Rele2 13 // Define pino de saida para rele 1
const int sensorPin1 = A0;
const int sensorPin2 = A1;
float sensorValue_aux = 0;
float sensorValue_aux2 = 0;
float sensorValue = 0;
float sensorValue2 = 0;
float currentValue = 0;
float currentValue2 = 0;
float voltsporUnidade = 0.0048828125;
int st_rl1;
int st_rl2;
String st_lamp1;
String st_lamp2;
void setup(){
Serial.begin(9600);
pinMode(Rele1,OUTPUT);
pinMode(Rele2,OUTPUT);
}
void loop(){
char c = Serial.read();
for(int i=500; i>0; i--)
{
sensorValue_aux = (analogRead(sensorPin1) -511); // le o sensor na pino analogico A0 e ajusta o valor lido ja que a saída do sensor é vcc/2 para corrente =0
sensorValue += pow(sensorValue_aux,2); // soam os quadardos das leituras no laco
}
sensorValue = (sqrt(sensorValue/ 500)) * voltsporUnidade; // finaliza o calculo da méida quadratica e ajusta o valor lido para volts
currentValue = (sensorValue/66)*1000; // calcula a corrente considerando a sensibilidade do sernsor (66 mV por amper)
{
sensorValue_aux2 = (analogRead(sensorPin2) -511); // le o sensor na pino analogico A0 e ajusta o valor lido ja que a saída do sensor é vcc/2 para corrente =0
sensorValue += pow(sensorValue_aux,2); // soam os quadardos das leituras no laco
}
sensorValue2 = (sqrt(sensorValue/ 500)) * voltsporUnidade; // finaliza o calculo da méida quadratica e ajusta o valor lido para volts
currentValue2 = (sensorValue/66)*1000; // calcula a corrente considerando a sensibilidade do sernsor (66 mV por amper)
if (currentValue < 0.10){
st_lamp1 = "apagada ";
}
else{
st_lamp1 = "ligada ";
}
if (c == '1'){
Serial.print (" Status do rele = ");
Serial.print (st_rl1);
Serial.print (" / Corrente = ");
Serial.print (currentValue);
Serial.print (" / Status atual da lampada = ");
Serial.println (st_lamp1);
}
if (currentValue2 < 0.10){
st_lamp2 = "2 apagada ";
}
else{
st_lamp2 = "2 ligada ";
}
if (c == '2'){
Serial.print (" Status do rele = ");
Serial.print (st_rl2);
Serial.print (" / Corrente = ");
Serial.print (currentValue2);
Serial.print (" / Status atual da lampada = ");
Serial.println (st_lamp2);
}
if (c == 'a'){
if (st_rl1 == 0)
{
digitalWrite(Rele1, HIGH);
Serial.print ("Status anterior do rele =");
Serial.print (st_rl1);
st_rl1 = 1;
Serial.print (" /Status do rele atual = ");
Serial.print (st_rl1);
st_rl1 = 1;
Serial.print (" / Status anterior da lampada = ");
Serial.print (st_lamp1);
Serial.print (" / Status da lampada atual = ");
Serial.println (st_lamp1);
}
else{
digitalWrite(Rele1, LOW);
Serial.print ("Status anterior do rele =");
Serial.print (st_rl1);
st_rl1 = 0;
Serial.print (" / Status do rele atual = ");
Serial.print (st_rl1);
st_rl1 = 0;
Serial.print (" / Status anterior da lampada= ");
Serial.print (st_lamp1);
Serial.print (" / Status da lampada atual= ");
Serial.println (st_lamp1);
}
}
if (c == 'b'){
if (st_rl2 == 0)
{
digitalWrite(Rele2, HIGH);
Serial.print ("Status anterior do rele =");
Serial.print (st_rl2);
st_rl2 = 1;
Serial.print (" /Status do rele atual = ");
Serial.print (st_rl2);
st_rl2 = 1;
Serial.print (" / Status anterior da lampada = ");
Serial.print (st_lamp2);
Serial.print (" / Status da lampada atual = ");
Serial.println (st_lamp2);
}
else{
digitalWrite(Rele2, LOW);
Serial.print ("Status anterior do rele =");
Serial.print (st_rl2);
st_rl2 = 0;
Serial.print (" / Status do rele atual = ");
Serial.print (st_rl2);
st_rl2 = 0;
Serial.print (" / Status anterior da lampada= ");
Serial.print (st_lamp2);
Serial.print (" / Status da lampada atual= ");
Serial.println (st_lamp2);
}
delay(1000);
}
Serial.print ("/ Status atual da lampada, ");
Serial.println (st_lamp1);
delay(1000);
Serial.print ("/ Status atual da lampada, ");
Serial.println (st_lamp2);
}
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por