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

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...
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

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