lunghezza programmi

salve a tutti intanto dico subito che sono uno studente di elettronica in una scuola superiore al primo anno di specializzazione e ho intenzione di prendere un arduino 2009(quello con l'ATMEGA 328). mi sono sorte però due domande:

1)quanto posso fare lungo il programma da mettere dentro al microcontrollore :-??? gli sketch d'esempio che si trovano su internet sono tutti caricabili sulla memoria del microcontrollore??

2)se per caso avessi bisogno di fare un programma molto lungo e complesso posso fare il mio programma e utilizzare la scheda connessa al computer senza caricarci il programma sopra(che non ci starebbe)??

grazie per la pazienza xD

Guarda, secondo me di spazio ne hai a iosa.
I problemi non sussistono tanto sulla lunghezza del programma (almeno da mia esperienza) ma sul tipo di variabili che utilizzi.
Ovviamente una costante prende molto meno spazio di una variabile byte o di un int o di una long...
Io sto lavorando ad un programma con almeno un centinaio di righe di codice; una volta compilato arrivavo a 10k di programma.
Modificando alcune variabili da int a byte e ricompilando sono passato a 9k
Capisci bene che è ben 10%!!!
In poche parole vai tranquillo. Puoi comandare, 5 pulsanti, un display LCD, due servomotori, un sensore di temperatura, uno di luce ed un RTC senza alcun problema :wink:
Prendi l'arduino, inizia a smanettarci e vedrai che di domande te ne sorgeranno ben più di due ;D

1)quanto posso fare lungo il programma da mettere dentro al microcontrollore Huh?? gli sketch d'esempio che si trovano su internet sono tutti caricabili sulla memoria del microcontrollore??

se intendi prendere l'arduino con l'atmega 328 sappi che le sue caratteristiche sono:

Flash Memory 16 KB (ATmega168) or 32 KB (ATmega328) of which 2 KB used by bootloader
SRAM 1 KB (ATmega168) or 2 KB (ATmega328)
EEPROM 512 bytes (ATmega168) or 1 KB (ATmega328)

La pesantezza del programma non puo essere valutata in base al numero delle righe come detto da @nathanvi ma in base al tipo di dati utilizzato. A me la dimensione della flash memory è sempre bastata... Quello che spesso non e bastata è la SRAM ma ci sono delle tecniche per espanderla virtualmente.

2)se per caso avessi bisogno di fare un programma molto lungo e complesso posso fare il mio programma e utilizzare la scheda connessa al computer senza caricarci il programma sopra(che non ci starebbe)??

in questo modo vanificheresti la potenza dell'arduino. Arduino dee lavorare da solo a meno che, ovviamente, non abbia bisogno di interagire con risorse del pc.
Il bello dell'utilizzo dei microcontrollori è ottimizzare il codice in modo che ci stia tutto sopra :slight_smile:

grazie a tutti per le risposte...avevo bisogno di interagire con il pc per fare dei grafici a seconda dei segnali che prendevo dalle porte dell'arduino allora avevo pensato che servissi creare il programma su pc e non caricarlo sul micro....i grafici li posso fare interfacciando il programma per programmare l'arduino con il vero processing o mi conviene usare un altro programma??

Allora...
Sono due i "programmi" che devi fare...
Uno è uno sketch con arduino che compili con l'IDE di Arduino e carichi sul microcontrollore... di Arduino...
Questo si occupa di prelevare i segnali dei sensori e di mandarli sulla porta seriale (che in realtà, come saprai, è una usb su cui transita un segnale seriale...)

A quel punto ci vuole un programma su PC che "recepisca" questi segnali e ne faccia qualcosa...
Tale programma lo puoi fare con il linguaggio chre preferisci. Io l'ho fatto con python ma so che molti lo gestiscono con processing.

Spero di aver risposto alla tua domanda...

PS: Con Arduino gestisci tutto con la libreria Serial
Con il programma ceh creerai su PC devi avere un linguaggio che gestisca le connessioni seriali. Su python, ad esempio, si usa la libreria pyserial...

bene ora finalmente ho capito...però penso che per captare i segnali e per fare i grafici utilizzerò processing perchè è molto simile al c++ che utilizziamo a scuola...python l'ho provato un po' di tempo fa per fare uno script per blender ma ci ho dato a mucchio quasi subito (non per la difficoltà del linguaggio, ma perchè io sono negato con blender ;D)

ottimo.. è quello che volevo fare :slight_smile: ovviamente i comandi possono essere anche in uscita/output....... Vero?? ;D

penso di si...o almeno dipende da cosa intendi per segnali in entrata uscita....da pc si possono leggere segnali da arduino ma anche mandarne alle sue uscite