
![]() | #161 (permalink) Top |
User 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 |
![]() | ![]() |
![]() | #162 (permalink) Top |
User 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 |
![]() | ![]() |
![]() | #163 (permalink) Top | |
Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
| Citazione:
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 | |
![]() | ![]() |
![]() | #165 (permalink) Top |
Adv Moderator Data registr.: 15-08-2007 Residenza: sto a Massa ma sono molto Positivo
Messaggi: 12.071
| 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 |
![]() | ![]() |
![]() | #166 (permalink) Top | ||
User Data registr.: 13-04-2009
Messaggi: 402
| Citazione:
![]() Citazione:
![]()
__________________ Parkzone T-28 // miniK 230 fpv racer // Axial Wraith // Truggy Hilux // Axial SCX10 Rubicon | ||
![]() | ![]() |
![]() | #167 (permalink) Top |
User 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. |
![]() | ![]() |
![]() | #168 (permalink) Top |
User 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 |
![]() | ![]() |
![]() | #169 (permalink) Top |
User 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 |
![]() | ![]() |
![]() | #170 (permalink) Top |
User 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 |
![]() | ![]() |
![]() |
Bookmarks |
| |
![]() | ||||
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 |