Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 22 dicembre 12, 22:42   #161 (permalink)  Top
User
 
L'avatar di gRiNgO
 
Data registr.: 13-04-2009
Messaggi: 402
Grazie mille appena posso lo provo e scrivo il risultato.graziee!!!

Sent from my LG-P500 using Tapatalk
__________________
Parkzone T-28 // miniK 230 fpv racer // Axial Wraith // Truggy Hilux
// Axial SCX10 Rubicon
gRiNgO non è collegato   Rispondi citando
Vecchio 23 dicembre 12, 16:28   #162 (permalink)  Top
User
 
L'avatar di gRiNgO
 
Data registr.: 13-04-2009
Messaggi: 402
Romoloman ti devo un birra!!!
ho modificato leggermente il tuo sketch per adattarlo al sensore:
Codice:
#include <Wire.h>
char buffer[10];
float temp;
int tempPin=0;

void setup() {
  Wire.begin();
  
  }
void loop ()  {  
  temp = analogRead(tempPin);           //lettura valore del sensore
  temp = (5.0 * temp * 100.0)/1024.0;
  Wire.beginTransmission(0x63);
  Wire.write((byte)(0x13));
  Wire.write((byte)(0x13));
  Wire.write(4);
  Wire.write(12);
  Wire.write((byte)(0x01));
  
  Wire.write("Temperatura");
  dtostrf(temp,5, 1, buffer);
  Wire.write(buffer);
  
  delay(1000);
  
  Wire.write("Allarme off");
    delay(1000);
  
  Wire.endTransmission();
}

giusto per non essere asino che fa le cose senza capire cosa sono i dati tra parentesi del dtostrf?
grazie e buone feste
__________________
Parkzone T-28 // miniK 230 fpv racer // Axial Wraith // Truggy Hilux
// Axial SCX10 Rubicon

Ultima modifica di gRiNgO : 23 dicembre 12 alle ore 16:33
gRiNgO non è collegato   Rispondi citando
Vecchio 23 dicembre 12, 22:56   #163 (permalink)  Top
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.069
Citazione:
Originalmente inviato da gRiNgO Visualizza messaggio
Romoloman ti devo un birra!!!
ho modificato leggermente il tuo sketch per adattarlo al sensore:
Codice:
  dtostrf(temp,5, 1, buffer);

giusto per non essere asino che fa le cose senza capire cosa sono i dati tra parentesi del dtostrf?
grazie e buone feste
temp: (ovviamente la temperatura, il float letto dal sensore)
5: lunghezza minima del campo includo il punto e il decimale
1: numero dei decimali dopo la virgola
buffer: stringa temporanea per mettere il risultato

perchè ho scelto 5 ed 1 ?
dubito che il tuo range di temperatura possa eccedere i -99.9 ed essere superiore ai 999.9 gradi in tutti e due i casi come vedi la lunghezza massima è 5 caratteri
usando la lunghezza massima eviti che il numero si muova sul display al massimo ti trovi degli spazi prima.
1 perché il decimo di grado credo ti basti.

la domanda che potresti porti è perché con 5 come lunghezza minima hai allocato 10 byte nel buffer ?
In realtà in effetti può essere esagerato, bastavano 6 caratteri (ricordati che una stringa ha sempre in fondo il carattere '\0'.
per fare le cose formalmente corrette la cosa migliore sarebbe verificare con un if che temp sia nell'intervallo corretto e visualizzarlo solo in quel caso, prevenendo errori di lettura. Qualora infatti la dtostr dovesse ritornare un valore fuori range ci sarebbero due problemi... il primo di visualizzazione ed i secondo di buffer overflow.
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766
romoloman non è collegato   Rispondi citando
Vecchio 24 dicembre 12, 00:44   #164 (permalink)  Top
User
 
L'avatar di gRiNgO
 
Data registr.: 13-04-2009
Messaggi: 402
grazie mille e complimenti per la competenza!
__________________
Parkzone T-28 // miniK 230 fpv racer // Axial Wraith // Truggy Hilux
// Axial SCX10 Rubicon
gRiNgO non è collegato   Rispondi citando
Vecchio 24 dicembre 12, 01:13   #165 (permalink)  Top
Adv Moderator
 
L'avatar di romoloman
 
Data registr.: 15-08-2007
Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.069
Citazione:
Originalmente inviato da gRiNgO Visualizza messaggio
grazie mille e complimenti per la competenza!
Comunque nel tuo programma vedo due cosucce che non mi piacciono proprio...
la prima usare un float.... non serve
500/1024 = 0.488 approssimiamolo a 0.48
uint16_t temp;
temp=analog_read(analog_pin);
temp=((temp*100)/48);
siccome tuttavia temp può arrivare a 1024 temp *100 eccederebbe 65535
allora riscriviamo come:
temp=((temp*25)/12);
a questo punto temp contiene la temperatura moltiplicata per 100
ti lascio il compito a casa per capire come dividerla e metterci il punto.
Suggerimento... lavora sulla stringa prodotta da itoa.

se comunque insisti nel usare i float:
Con il tuo codice:
Dimensione del file binario dello sketch: 4.904 bytes (su un massimo di 32.256 bytes)

sostituisci quell' 5.0*temp*100.0 con 500.0 *temp
Dimensione del file binario dello sketch: 4.892 bytes (su un massimo di 32.256 bytes)

12 bytes risparmiati....

Comunque....
regola numero uno: non usare float se non ci sei costretto
regola numero due: per quanto possa essere buono un compilatore, l'ottimizzazione è meglio se la fai tu, non fare due moltiplicazioni se puoi farne una...
__________________
Vivere in qeusto mondo e molto belo belo e vale la pena starci ma a volte in questa UNICA vita che ci apartiene posono succedere cose brute brute alora mi chiedo perche siete incazziati domani pole esere anche lultimo
Grazie "TRANQUILLO"
FAI 15766

Ultima modifica di romoloman : 24 dicembre 12 alle ore 01:22
romoloman non è collegato   Rispondi citando
Vecchio 24 dicembre 12, 15:56   #166 (permalink)  Top
User
 
L'avatar di gRiNgO
 
Data registr.: 13-04-2009
Messaggi: 402
Citazione:
Originalmente inviato da romoloman Visualizza messaggio
Comunque nel tuo programma vedo due cosucce che non mi piacciono proprio...
la prima usare un float.... non serve
500/1024 = 0.488 approssimiamolo a 0.48
uint16_t temp;
temp=analog_read(analog_pin);
temp=((temp*100)/48);
siccome tuttavia temp può arrivare a 1024 temp *100 eccederebbe 65535
allora riscriviamo come:
temp=((temp*25)/12);
a questo punto temp contiene la temperatura moltiplicata per 100
ti lascio il compito a casa per capire come dividerla e metterci il punto.
Suggerimento... lavora sulla stringa prodotta da itoa.
ehm mi sono perso, l'unica cosa che mi viene in mente è di giocare con il numero di caratteri dichiarati e il numero di decimali?

Citazione:
Originalmente inviato da romoloman Visualizza messaggio
se comunque insisti nel usare i float:
Con il tuo codice:
Dimensione del file binario dello sketch: 4.904 bytes (su un massimo di 32.256 bytes)

sostituisci quell' 5.0*temp*100.0 con 500.0 *temp
Dimensione del file binario dello sketch: 4.892 bytes (su un massimo di 32.256 bytes)

12 bytes risparmiati....
ok questo è facile
__________________
Parkzone T-28 // miniK 230 fpv racer // Axial Wraith // Truggy Hilux
// Axial SCX10 Rubicon
gRiNgO non è collegato   Rispondi citando
Vecchio 21 gennaio 13, 23:45   #167 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
Arduino e LCD GDM1602K - problemi

oggi mi trovavo a catania.. vado in un negozio di elettronica per caso trovo.. un LCD GDM1602k ..3 euro! ..lo compro.. vado a provarlo con arduino


Arduino - LiquidCrystal

niente! ho ispezionato tutti i contatti.. ma nulla da fare LCD si accende..ma la scritta HELLO WORLD purtroppo non appare ! cosa posso fare? il poteziometro lo giro e rigiro da un pezzo ma in qualunque posizione non funziona! in una determinata posizione mi fa accendere tutti i puntini di cui sono composti ..ma non appare nulla! non ho messo resitenze come illustrato in alcuni casi sul pin 16 trovo indicato una resistenza da 220 ohm ma pur usandola no cambia nulla ...anzi perdo la retro illuminazione.
faustog_2 non è collegato   Rispondi citando
Vecchio 22 gennaio 13, 00:11   #168 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
dunque risolto.. è stato sufficiente togliere la retro illuminazione... vale a dire il pin 16 e 15 dell' LCD.. appena tolti mosso un po il poteziometro tutto ok è apparsa la scritta Hello world.. adesso per i miei esperimenti non devo per forza dipendere da un monitor.. quindi un PC.. giusto con la spesa di tre euro! almeno per output semplici.. a dopo
fausto
faustog_2 non è collegato   Rispondi citando
Vecchio 22 gennaio 13, 00:39   #169 (permalink)  Top
User
 
L'avatar di faustog_2
 
Data registr.: 19-07-2008
Residenza: catania
Messaggi: 978
funziona a 0,87 volt

dunque con il tester ho letto che LCD offre la visibilità usando il potenziometro da 10k a 0,87 Volt.

lo schema da seguire è questo:

http://arduino.cc/en/uploads/Tutorial/lcd_bb.png

non occorre collegare gli ultimi due a destra ovvero il pin 15 a + 5V, e il 16 a GND con resistenza da 220 ohm... per il GDM1602K nn funziona!

a dopo
fausto
faustog_2 non è collegato   Rispondi citando
Vecchio 23 gennaio 13, 12:30   #170 (permalink)  Top
User
 
L'avatar di Tom_1971
 
Data registr.: 23-04-2008
Residenza: Firenze
Messaggi: 1.108
Anche io avevo fatto una prova (molto frettolosa devo dire) con il LCD che c'era nel mio starter kit, senza risultato. Magari quello che scrivi tu aiuta, devo riprovare. Il mio prossimo progetto (banale quanto il primo, ma l'importante è divertirsi e -pian piano- imparare) è un contagiri per eli ed aerei.
__________________
1) Honey Bee FP 2) Mini Titan (V1 e V2) 3) Paracopter 4) Ultra-Micro J-3 Cub 5) Blade msr 6) Ultra-Micro T-28 Trojan 7) Team Losi Mini T 8) Blade mcpx 9) Turnigy 1/16 Nitro Buggy 10) Basher Nictro Circus 1/10 SCT
Tom_1971 non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
Coassiale mixed controller con arduino catman Circuiti Elettronici 12 01 aprile 11 23:17
quadricottero con arduino 2009 sailormann26 Aeromodellismo Progettazione e Costruzione 0 27 dicembre 10 23:12



Tutti gli orari sono GMT +2. Adesso sono le 02:13.


Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002