Show Posts
Pages: [1]
1  International / Software / Re: Problemi con Leonardo e LCD Display standard on: November 11, 2012, 02:40:50 pm
ragazzi forse ho capito ... è un problema hardware, tutto mi è stato più chiaro guardando questa foto http://www.flickr.com/photos/johngineer/7329403498/in/photostream.
Io ho connesso LCD sui pin 12, 11, 5, 4, 3, 2 e la sonda sui pin SCL e SDA, però da quanto posso evincere da questa foto i pin 2 e 3 sono interconnessi con SCL e SDA ... quindi vanno in conflitto ??? Adesso non sono in laboratorio per provare ma mi sembra una risposta possibile.
2  International / Software / Re: Problemi con Leonardo e LCD Display standard on: November 11, 2012, 12:52:46 pm
Ho fatto un altro test.

Provato l'esempio di base "hello World" e tutto funzia, a questo punto mi vien da pensare che per qualche oscuro motivo la libreria I2C vada in conflitto con la trasmissione sul LCD. Possibile ?
Dico questo perchè se nel programma della temperatura metto anche un semplice lcd.print("hello"); i caratteri sono indecifrabili.
3  International / Software / Re: Problemi con Leonardo e LCD Display standard on: November 11, 2012, 12:43:54 pm
nulla da fare sempre caratteri ostrogoti, mi inizia a venire il dubbio che sia un problema hardware ...
Il fatto è che questo programma lo avevo già provato con Arduino Uno rev.3 e LCD shield e tutto funzionava alla grande, adesso volevo portarlo sulla Leonardo con LCD standard e non funziona più.

Andiamo per gradi ed a esclusione:

- IDE usato x la uno 1.00 e 1.01, adesso leonardo 1.01 e 1.02
- LCD shield (driver LCD4bit_mod) vs LCD standard con libreria standard (naturalmente modificando i comandi)
- driver i2c lo stesso (tendo ad escludere che sia questo il colpevole perchè dalla seriale leggo correttamente le temperature, quindi l'interfacciamento sembra corretto)

l'unica cosa che mi viene da pensare è che ci sia un errore nella conversione float ---> char

altrimenti un problema hardware che mi fa incazzare qualcosa e manda in panico la scheda, ma mi sembra un programma banale.
4  International / Software / Re: Problemi con Leonardo e LCD Display standard on: November 10, 2012, 02:59:22 pm
Non so più dove sbattere la testa ... nessuna altra idea ?
5  International / Software / Re: Problemi con Leonardo e LCD Display standard on: November 10, 2012, 12:05:35 pm
Piccola correzione, mi sono accorto che anche lcd.print("stringa") funziona solo perchè è in void setup, poi non funziona più.
6  International / Software / Re: Problemi con Leonardo e LCD Display standard on: November 10, 2012, 11:50:36 am
aumentato a 20 e non cambia nulla astrobeed
7  International / Software / Re: Problemi con Leonardo e LCD Display standard on: November 10, 2012, 11:42:36 am
cece il programma è quello che ho postato, sembra che quando vado ad utilizzare sprintf mi vada tutto in tilt, se io uso lcd.print("stringa") funge, se invece utilizzo come nel programma sopracitato lcd.print(buf) derivato dal comando sprintf mi escono scritte tipo cinesi.
8  International / Software / Re: Problemi con Leonardo e LCD Display standard on: November 10, 2012, 11:20:49 am
ho provato a fare come dici con DEC ma mi escono sempre caratteri strani tipo cinesi  smiley-eek-blue, sicuramente non un numero.


9  International / Software / Re: Problemi con Leonardo e LCD Display standard on: November 10, 2012, 11:10:53 am
Stavo provando questo programma, ho aggiunto io la parte x l'LCD

Code:
#include <i2cmaster.h>
#include <LiquidCrystal.h>
#include <stdio.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
char buf[10];

void setup(){
lcd.begin(16, 2);
Serial.begin(9600);
Serial.println("Setup...");

i2c_init(); //Initialise the i2c bus
PORTD = (1 << PORTD2) | (1 << PORTD3);//enable pullups
}

void loop(){
int dev = 0x5A<<1;
int data_low = 0;
int data_high = 0;
int pec = 0;



i2c_start_wait(dev+I2C_WRITE);
i2c_write(0x07);

// read
i2c_rep_start(dev+I2C_READ);
data_low = i2c_readAck(); //Read 1 byte and then send ack
data_high = i2c_readAck(); //Read 1 byte and then send ack
pec = i2c_readNak();
i2c_stop();

//This converts high and low bytes together and processes temperature, MSB is a error bit and is ignored for temps
double tempFactor = 0.02; // 0.02 degrees per LSB (measurement resolution of the MLX90614)
double tempData = 0x0000; // zero out the data
int frac; // data past the decimal point

// This masks off the error bit of the high byte, then moves it left 8 bits and adds the low byte.
tempData = (double)(((data_high & 0x007F) << 8) + data_low);
tempData = (tempData * tempFactor)-0.01;

float celcius = tempData - 273.15;
float fahrenheit = (celcius*1.8) + 32;

Serial.print("Celcius: ");
Serial.println(celcius);
sprintf(buf, "Temperatura!%d", celcius);
lcd.write(buf);


Serial.print("Fahrenheit: ");
Serial.println(fahrenheit);

delay(5000); // wait a second before printing again
lcd.clear();
delay(5000);
}

Scusate per la domanda ... molto probabilmente è una idiozia ... ma è possibile che il mio display che proviene dalla cina mi riporti dei caratteri cinesi al posto degli europei ???
10  International / Software / [Risolto]Problemi con Leonardo e LCD Display standard on: November 10, 2012, 10:39:06 am
Buongiorno,

Sto lavorando con una Leonardo e un LCD standard, il programma che sto testando fa la lettura della temperatura da una sonda di temperatura I2C.
La lettura della temperatura avviene in modo corretto, in quanto rimando sulla seriale il valore e controllando col serial monitor i valori passano correttamente.
Il mio problema arriva quando tento di scrivere il valore su LCD standard.
Se io invio una stringa con  il seguente comando funziona e appare correttamente:
Code:
lcd.print("temperatura");
quando invece cerco di scrivere il valore della variabile che contiene la temperatura con il seguente comando:
Code:
lcd.print(temp);
mi appaiono sul display dei caratteri incomprensibili.

Sono abbastanza alle prime armi con la programmazione siate clementi  smiley-sad-blue

11  Using Arduino / Sensors / MLX90614 distance on: January 13, 2012, 04:31:11 am
Hi,
I'm a newbie, i try an arduino UNO rev.3 with MLX90614, with this code example http://interface.khm.de/index.php/lab/experiments/infrared-thermometer-mlx90614/.
Everything works, I read the temperature on serial monitor, but when I move the object to more than 3 cm, the reading is not real.
It's possible increase the reading distance? I do not need to read the temperature from a small object, but from a surface.


Emanuele
Pages: [1]