domande da principianti!

ciau a tutti, sono uno studente di elettronica, sogno di fare un bel progetto da portare all'esame.. mi sono avvicinato ad arduino e credo che sia il mio ideale per quello che voglio fare ma questo avverra' in un secondo momento intanto vi faccio una carrellata di domande per chiarirmi le idee e perche no, prendere appunti.

arduino uno + display lcd come si collegano? e che differenza c'e' tra i2c e parallelo? con quali dei 2 si risparmiano pin? avete uno schema elettrico per sapere come collegarli??

avete per caso una grossa guida per programmare l'arduino?? vi ringrazio in anticipo!

Il linguaggio di arduino è un C# semplificato, comunque se non hai le basi non ci fai molto... devi prenderti qualche testo delle superiori e gli dai una letta poi inizi... un display che occupa pochi pin (1 o 2) potrebbe usare la Seriale (UART) oppure l' I2C il primo è un poco più semplice da usare, i display paralleli ti portano via 8 pin se non ricordo male

Hai letto qui:

http://arduino.cc/en/Tutorial/HomePage

?

ratto93: i display paralleli ti portano via 8 pin se non ricordo male

4 od 8, a seconda se usi la trasmissione con 1 byte intero o mezzo byte (nibble) di dati per volta.

Cmq i display seriali spesso altro non sono che semplici display paralleli a cui viene collegato un microcontrollore (può essere un Atmega168 SMD, per esempio) che funge da convertitore seriale/parallelo, in modo da comunicare con il display usando il minimo di pin.

ok ragazzi sono riuscito a chiarire le idee per quanto riguarda i display! i2c sono detti anche seriali e occupano 2 pin, questo grazie ad un'altro integrato. voglio riuscire a fare un orologio per partire con il mio progetto ma l'ora devo fare in modo di impostarla via telecomando suggerimenti? oltre a quello di mandarmi subito a studiare?

Se vuoi puoi usare un telecomando (uno del tuo televisore di casa va benissimo purché non sia ULTRAMODERNO), un ricevitore IR del tipo TSOPN1738, e questo piccolo sketch.

Se hai bisogno di chiarimenti chiedi pure. :wink:

#include <IRremote.h>

int RECV_PIN = 10;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(13, OUTPUT); // set pin 13 for output (LED)
}

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value

digitalWrite(13, HIGH); // set the LED on
delay(100); // wait for a 1/10 second
digitalWrite(13, LOW); // set the LED off
}
}

spydread: ok ragazzi sono riuscito a chiarire le idee per quanto riguarda i display! i2c sono detti anche seriali e occupano 2 pin,

Non è propriamente così. La connessione seriale è una cosa, quella I2C un'altra. Si gestiscono in 2 modi simili ma diversi. Difatti i display seriali sono spesso anche compatibili con il bus I2C ma non è una regola. http://arduino.cc/en/Reference/Serial http://www.arduino.cc/en/Reference/Wire (I2C)

Il discorso non è di andare a studiare, ma di partire dalle cose semplici. Vai su arduino.cc, clicca su Learning e comincia ad implementare semplci sketch come lampeggio di led, ecc. Librerie standard come LiquidCrystal hanno degli esempi davvero minimali che aiutano molto a capire come implementare le funzionalità di base (scrivere una stringa sul display, ecc.) Se non hai presente nemmeno la differenza tra un display parallelo e uno seriale, buttarti a pesce nell'implementazione di un orologio settato via IR è una "mission impossible". Quindi il mio suggerimento (che rivolgerei a me stesso se decidessi di implementare un progetto come il tuo) è: - imparare a gestire i singoli componenti - imparare a gestire un programma che fa più cose contemporaneamente (blink without delay) - provare a mettere insieme due componenti per volta (ad es. IR e display, display e orologio, ecc.)

:)

sisi infatti e' quello che sto cercando di fare! sto iniziando ad inquadrare il tutto,inizio a capire che non ci sono librerie sufficenti nel compilatore dell'arduino e che dovro' trovarle in giro!

ciau a tutti come ho già' detto prima sto studiando il linguaggio per il nostro Arduino ho gia' capito quasi tutti gli esempi che ci sono nel sito dell'arduino, e inizio ad entrare nell'ottica ma ci sono cose che non sto capendo, ho scaricato uno sketch di un programma che fa l'orologio, ma ci sono parti che non capisco ad esempio

if (step ==0){ if (h == 23) { h=0; } else { h++;

non capisco perche per tutto il programma ci sono questi "step che aumentano di nemero" sarebbe un modo per definire un gruppo? un passo? e poi non capisco perche ogni fine di questi step che poi indicheranno ore minuti e secondi c'e' sempre la sigla di ore minuti e secondi accompagnati da "++" significa che devono scorrere cioe aumentare di numero in questo casto fino al num 23 e ricominciare da capo o altro? quindi se io questo h++ non lo metto nn avanzano le ore? grazie a tutti e specialmente per chi pazientemente mi rispondera' spydread.

++ significa Aumenta di 1

quindi in questo caso oltre ad aumentare le ore, ad esempio da 4 a 5, il blocco IF che hai postato controlla anche quando azzerare a 0. se non ci fosse dopo le ore 23 passerebbe alle ore 24, e dopo le ore 24 passerebbe alle ore 25

stessa cosa per i minuti e per i secondi che invece saranno azzerati a dopo 59

se non metti ++ l'orologio "non cammina"

Puoi trovare molte delle risposte sul C++ qui: http://programmazione.html.it/guide/leggi/34/guida-c/

Il ++ indica un incremento della variabile di una unità.

ora++; // aumenta la variabile ora di 1

Se "ora" aveva il valore 13, dopo il comando varrà 14.

grazie grazie grazie a tutti! vi ho chiesto questo perche sto studiando per fare in modo che imposto l'ora dell'orologio e poi vorrei impostare un orario raggiunta quella certa ora mi porta un pin a livello alto, e quindi devo impostare l'orario e ovviamente restare fermo e nn incrementare adesso, devo solo capire come fare in modo di raggruppare tutto l'orario in una parola ad esempio " ora di irrigazione" e poi metto un comando if e gli dico che quando " l'ora di irrigazione" e' uguale all'orario attuale si attiva il pin portandosi a livello!

Ciao a tutti Il linguaggio non é il C# ma il C++; Per pilotare un display LCD a base di un HD44780 o compatibile (display a caratteri alfanumerici, non quelli grafici) ci vogliono 4 pin di dati e 2 di pilotaggio percui al minmo 6 pin. Si puó usare un shift register, per esempio un 74HC595 per diminuire i pin. In questo caso servono 3 pin per interfacciare il 595 all'Arduino. Si possono mettere tra display e Arduino un microcontroller programato (che vengono venduti singolarmente o insieme al Display seriale) e avere un interfaccia I2C (che ha bisogno di 2 Pin ma visto che é un bus si possono usare gli stessi pin per altri dispositivi I2C come EEPROM, RTC, sensori ecc) oppure seriale (UART o la libreria SoftwareSerial) usando solo 1 pin (TX). http://arduino.cc/playground/Code/LCD e agina librerie: http://arduino.cc/en/Reference/Libraries

"++" incrementa una variabile di 1 a secodo se scrivi i ++ prima o dopo incremente la variabile prima o dopo l' uso (dove c'é differenza. esempio: Serial.print(i++,DEC); stampa il contenuto di i sulla seriale e poi lo incrementa mentre esempio: Serial.print(++i,DEC); incrementa e poi stampa. Lo stessso val e per --; Tutti questi truchetti del C trovi spiegati sulla pagina: http://arduino.cc/en/Reference/HomePage e in particolare http://arduino.cc/en/Reference/Increment

Ciao Uwe

Per l'orario devi usare un RTC, hardware o software. Per quello software puoi vedere l'swRTC di Leo72: http://arduino.cc/forum/index.php/topic,73496.0.html

non riesco a mettere e far funzionare correttemente la libreria di leo! :frowning: eppure ho seguito i passi che sono spiegati nel sito di leonardo ma niente non riesco a visualizzare la libreria… una buona anima pia che spiega come si mette questa libreria?

Io personalmente non l'ho mai usata, ma penso che sarbbe utile se invece di dire semplicemente "non riesco a mettere la libreria" tu descrivessi per filo e per segno tutti i passi che hai seguito e dove ti sei "impantanato". In questo modo sarebbe molto più facile aiutarti. :-)

La libreria va scompattata nella cartella /libraries all'interno della propria cartella degli sketch. Ad esempio, io su Linux la cartella degli sketch ce l'ho in /home/leo/sketchbook. All'interno di essa c'è (se non c'è la devi creare) la cartella /libraries, al cui interno devi mettere la lib. Alla fine dei salmi i file .h e .cpp devono risiedere in /home/leo/sketchbook/libraries/swRTC

Su Windows mi pare che la cartella degli sketch sia di default /Documenti/Arduino ma non ne sono sicuro (cmq basta aprire le preferenze dell'IDE e vedi subito qual'è la cartella che stai usando)

allora ho scaricato il file, scompattandolo si trovano 2 cartelle una con scritto tiny e una tools nel sito dice ti prendere questi file e metterli dentro una cartella chiamata swrtc e se non c’e’ questa cartella crearla, perfetto creo questa cartella metto le altre 2 cartelle citate prima all’interno,e li inserisco all’interno della libreria. e’ tutto semplice almeno credo ma quando apro il programma e cerco la libreria non me la trova! gli esempi, se ci sono non li vedo!

Non vorrei tu avessi fatto un po' di confusione... tiny e tools sono 2 cartelle che fanno parte del core Tiny, le librerie che servono per poter programmare i "piccolini" di Atmel (Attiny85/Attiny84/Attiny2313) dall'IDE di Arduino. La mia libreria è un'altra cosa.... Mi dici per favore la pagina dove hai trovato i link per il download?