Go Down

Topic: Problema Porta Analogica (Read 1 time) previous topic - next topic

danilmen

Tou com um problema na porta analogica do meu arduino =/ , sempre q ligo qualquer sensor ou potenciometro na porta analogica aparece no
monitor uns negócios estranhos do tipo "ÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕÕ" . Não aparece os valores corretos =/ não sei mais o q fazer.

HugoPT

O teu primeiro passo deve ser colocar o codigo aqui para poder mos ver.
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

bubulindo

Eu estou com um problema na tua descrição... Sempre que tento ajudar, não aparece nada que me indique que erro estás a fazer...
This... is a hobby.

danilmen

#include "LiquidCrystal.h"
#include "Limits.h"
const int sensorLuz  = 0; //Pino analógico em que o sensor de luz está conectado.
const int sensorTemp = 1; //Pino analógico em que o sensor de temperatura está conectado.

int valorSensorLuz  = 0;  //variável usada para ler o valor do sensor de luz.
int valorSensorTemp = 0;  //variável usada para ler o valor do sensor de temperatura.

//Criando um objeto da classe LiquidCrystal e
//inicializando com os pinos da interface.
LiquidCrystal lcd(9, 8, 5, 4, 3, 2);

void setup() {
  //Inicializando o LCD e informando o tamanho de 16 colunas e 2 linhas
  //que é o tamanho do LCD JHD 162A usado neste projeto.
  lcd.begin(16, 2);   
}

void loop() {
  //Lendo o valor do sensor de luz
  valorSensorLuz  = analogRead(sensorLuz);
 
  //Para evitar as grandes variações de leitura do componente
  //LM35 são feitas 8 leitura é o menor valor lido prevalece. 
  menorValorTemp  = INT_MAX; //Inicializando a variável com o maior valor int possível
  for (int i = 1; i <= 8; i++) {
    //Lendo o valor do sensor de temperatura.
    valorSensorTemp = analogRead(sensorTemp);   

    //Transformando valor lido no sensor de temperatura em graus celsius aproximados.
    valorSensorTemp *= 0.54 ;
   
    //Mantendo sempre a menor temperatura lida
    if (valorSensorTemp < menorValorTemp) {
      menorValorTemp = valorSensorTemp;
    }
   
   delay(150);
  }   
   
  //Exibindo valor da leitura do sensor de temperatura no display LCD.
  lcd.clear();  //limpa o display do LCD.     
  lcd.print("Temp: ");  //imprime a string no display do LCD.                 
  lcd.print(menorValorTemp);
  lcd.write(B11011111); //Simbolo de graus celsius
  lcd.print("C");
 
  //Exibindo valor da leitura do sensor de luz no display LCD.
  lcd.setCursor(0,1);  //posiciona o cursor na coluna 0 linha 1 do LCD.
  lcd.print("Luz: ");  //imprime a string no display do LCD.       
  lcd.print(valorSensorLuz); 
   
  delay(2000); //aguarda 2 segundos
}

danilmen

Este é o código, porém já usei outros pra tentar ver os valores no serial monitor mas não aparece corretamente.Já fiz um esquema simples em que ligava um potenciometro na porta analogica pra ver as alterações dos valores ao girá-lo mas sempre aparece no serial monitor umas letras estranhas ao inves de números. EX: "ôÔÔõ"

HugoPT

Quote
Este é o código, porém já usei outros pra tentar ver os valores no serial monitor mas não aparece corretamente

Amigo neste codigo onde é que inicias a porta Serie?
So vejo escreveres no LCD.É isso o teu problema escrever no LCD ou afinal é na porta Serie?
Tens de ser coerente no que escreves, como queres que te ajudemos se quase temos de decifrar o teu problema
Para testares a porta Serie usa isto por exemplo
Code: [Select]


void setup() {
  Serial.begin(9600);
}
void loop() {
Serial.println("Estou vivo");
delay(1000);
}


Se abreres a tua porta serie com o baudrate a 9600 deve te aparecer com uma cadencia de 1 segundo Estou vivo
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

danilmen

Hugo eu compilei esse o código que você postou ai ficou aparecendo: " ±¡ ±¡ ±¡ ±¡ ±¡ ±¡ ±¡ ±¡ ±¡ ±¡ ±¡ ±¡ ±¡ ±¡" ao inves de aparecer a frase.

HugoPT

Verifica se tens o baud correcto quando abres a porta Serie.No exemplo que te passei tens de ter o baud a 9600 bps
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

danilmen

Hugo vlw mesmo cara, não tinha visto q a baud tava diferente. Ajeitei e tudo pegou normal

Lago

O mesmo bound do código tem que ficar no monitor:


Go Up