-
Posts
7 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Lucas090
-
-
Beleza, valeu mesmo
Assim que possível volto aqui relatar ( espero que para dizer que funcionou perfeitamente )
adicionado 15 minutos depois5 horas atrás, Bommu Perneta disse:Isso, às vezes pode bugar algum intervalo. Mas é isso aí... os pinos não estão conflitando nem para o buzzer , lcd ou o sensor. O resto é código.
Faça um test/monte e veja se está de acordo. Se não tiver você pode ir comentando parte do teu código do void loop para ver onde está o erro.
adicionado 3 minutos depoisSó estou estranhando esse digitalWrite(8, HIGH);
em todos ... teria que ver a função disso ai se é para ligar um led... relé ou sei lá... se for um led seria bom ligar outra porta para distinguir que parte do teu código que foi que ligou o mesmo.
Acho que o correto deveria ser isso:
pinMode(8,HIGH);
Não?
E acho que eu poderia fazer uma função para tocar o buzzer numa faixa de 200 a 600
-
Seria isso:
Citação#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3,4,5, 6,7);
int valor_sensor =0;
void setup ()
{
Serial.begin(9600);
pinMode(A1, INPUT);
pinMode(8, OUTPUT);
lcd.clear();
lcd.print(" Bafometro ");
lcd.setCursor(0,1);
lcd.print(" Sensor ");
delay(2000);}
void loop ()
{
valor_sensor = analogRead(A1);if (valor_sensor >= 0 and valor_sensor <= 50)
{
lcd.print(" Baixo ou nulo ");
lcd.setCursor(0,1);
lcd.print(valor_sensor);
}
else if (valor_sensor >= 51 and valor_sensor <= 200)
{
lcd.print(" Baixo ");
lcd.setCursor(0,1);
lcd.print(valor_sensor);
}
else if (valor_sensor >= 201 and valor_sensor <= 400)
{
lcd.print(" Alto ");
lcd.setCursor(0,1);
lcd.print(valor_sensor);
digitalWrite(8, HIGH);
}
else if (valor_sensor >= 401 and valor_sensor <= 600)
{
lcd.print(" Altissimo ");
lcd.setCursor(0,1);
lcd.print(valor_sensor);
digitalWrite(8, HIGH);
}
else if (valor_sensor >= 601)
{
lcd.print(" Chame o Taxi! ");
lcd.setCursor(0,1);
lcd.print(valor_sensor);
digitalWrite(8, HIGH);
}
} -
Eu meio que entendo, mas não sei como juntar as peças
-
-
Você desconsidera então o tempo de aquecimento? Ouvi em algum lugar que era nerscessário, mas isso é o de menos
Sou bem leigo em programação mesmo, eu queria basicamente que o display mostrasse o nível de alcool lido pelo sensor constatemente( que eu imagino que seria pela porta Analogica, certo?) e caso atingisse um determinado valor, printasse uma mensgem e tocasse o buzzer
Alguma dica? Onde eu mudo?
-
Alguém poderia corrigir urgentemente essa questão ?
Essa programação de arduino está correta? Seria um bafômetro que mostra o valor serial constantemente.
#include <LiquidCrystal.h> #define sensor 9 // Connnect MQ-3 Sensor to pin-9 #define buzzer 8 // Connnect Buzzer to pin-8 int valor_sensor = 0; LiquidCrystal lcd(2, 3,4,5, 6,7); // LCD PIN - ARDUINO PIN // RS - 2 // RW - GND // E - 3 // D4 - 4 // D5 - 5 // D6 - 6 // D7 - 7 void setup() { valor_sensor = analogRead(A0); lcd.begin(16, 2); pinMode(sensor, INPUT); pinMode(buzzer, OUTPUT); lcd.clear(); lcd.print(" Bafometro "); lcd.setCursor(0,1); lcd.print(" Carregando... 10% "); delay(1800); lcd.clear(); lcd.print(" Bafometro "); lcd.setCursor(0,1); lcd.print(" Carregando... 20% "); delay(1800); lcd.clear(); lcd.print(" Bafometro "); lcd.setCursor(0,1); lcd.print(" Carregando...30% "); delay(1800); lcd.clear(); lcd.print(" Bafometro "); lcd.setCursor(0,1); lcd.print(" Carregando...40% "); delay(1800); lcd.clear(); lcd.print(" Bafometro "); lcd.setCursor(0,1); lcd.print(" Carregando...50% "); delay(1800); lcd.clear(); lcd.print(" Bafometro "); lcd.setCursor(0,1); lcd.print(" Carregando...60% "); delay(1800); lcd.clear(); lcd.print(" Bafometro "); lcd.setCursor(0,1); lcd.print(" Carregando...70% "); delay(1800); lcd.clear(); lcd.print(" Bafometro "); lcd.setCursor(0,1); lcd.print(" Carregando...80% "); delay(1800); lcd.clear(); lcd.print(" Bafometro "); lcd.setCursor(0,1); lcd.print(" Carregando...90% "); delay(1800); } void sens(){ int i=1; lcd.clear(); lcd.print("Alcool Detectado"); digitalWrite(buzzer, HIGH); lcd.setCursor(0,1); lcd.print(valor_sensor); } void scn(){ lcd.clear(); lcd.print(" Analizando... "); digitalWrite(buzzer, LOW); lcd.setCursor(0,1); lcd.print(valor_sensor); } void loop() { if(digitalRead(sensor)==0) sens(); else scn(); }
Foi baseado nesse guia:
http://www.davindermahi.com/2017/07/12/arduino-interface-for-alcohol-mq-3-sensor/
Nesse caso eu liguei a saída DO em AO. Certo?
Deixei 3 minutos para aquecimento do sensor.
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Esta certo essa programação?
em Microcontroladores
Postado
É mesmo '-' Era para usar as duas linhas... esqueci do lcd.begin(16, 2);
Esta certo agora, pessoal ?