Scelta Arduino UNO rev.3 o Arduino Mega2560

Ciao a tutti, sono Daniele.
Ad oggi non ho ancora acquistato Arduino ma adesso è arrivato il momento di farlo.
Conosco il C, C++, Java.
Con Arduino si programma in C? Come si programma un Arduino, attraverso quale IDE?

Vorrei essere aiutato nella scelta del corretto Arduino.
Sono indeciso se prendere Arduino UNO rev.3 oppure Arduino MEGA2560.
Ho letto che sono uguali identici, ma il secondo ha una memoria più estesa e ha molti più pin, utili per chi come me vorrebbe collegare tante cose, in particolare sensori, lcd, ecc.

Come prima esperienza vanno bene entrambi?
Seconda domanda, mi basta scaricare l'IDE e collegare Arduino tramite USB e già funziona?

Vi ringrazio tantissimo e mi scuso se ho scritto nel topic errato.

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento

Si, si programma in C++ anche se con la poca SRAM è meglio non esagerare con librerie ad oggetti "pesanti".
Per l'IDE si scarica dal sito Arduino, versione stabile la 1.0.6 La 1.5.8 non è quella stabile.

Scarichi l'IDE e quando colleghi Arduino alla USB del PC utilizzi i driver forniti con l'IDE (NON quelli che cerca Windows da solo).
Secondo me ti conviene iniziare con Arduino Uno e ... imparare anche un pochetto di elettronica.

nid69ita:
Si, si programma in C++ anche se con la poca SRAM è meglio non esagerare con librerie ad oggetti "pesanti".
Per l'IDE si scarica dal sito Arduino, versione stabile la 1.0.6 La 1.5.8 non è quella stabile.
http://arduino.cc/en/Main/Software
Scarichi l'IDE e quando colleghi Arduino alla USB del PC utilizzi i driver forniti con l'IDE (NON quelli che cerca Windows da solo).
Secondo me ti conviene iniziare con Arduino Uno e ... imparare anche un pochetto di elettronica.

Perfettissimo. Tutto abbastanza chiaro.
Come ho scritto nella presentazione sono un Tecnico delle Industrie Elettroniche.
mastico già un pò di elettronica. Sono un futuro Ingengere Informatico.
Spero che le mie conoscenze possano servire.

Io vorrei puntare su Arduino Mega2560 per quelle due cosette in più. Dici che va bene?? Dovrebbe essere uguale spiccicato ad Arduino Uno ma con più sram e più porte digitali e analogiche.
Ho la testa al Mega2560 anzicchè all'Arduino UNO hihihihihiihihihih :wink: non so se è un problema.
Me lo consigli così lo acquisto subito???? Grazie infinite per i preziosi consigli!

PS: Posso programmare sia in C che in C++ o solo in C++? Multithreading no, dicon bene??

Grazie mille, sei gentilissimo!

Si chiama:
Arduino Mega 2560 R3 microcontrollore ATmega2560

Se parti con la Mega non ci sono problemi. I tutorial della Uno vanno bene anche per la Mega. Dovrai solo fare attenzione che alcuni pin più usati sono posizionati diversamente sulle due schede.

Programmi in C o C++. No multitasking perchè sulla MCU non c'e' un S.O. che gira. Solo il tuo programma e il bootloader che serve per poter "spedire" (upload) da PC alla scheda il codice.
I programmi che scrivi (sketch) mascherano la struttura base del c, ci pensano alcune librerie (core) di Arduino.

Lo sketch base è:

void setup()
{ // eseguito solo 1 volta alla partenza
}
void loop()
{  // eseguito all'infinito
}

Nel core c'e' il main, ovvero (non è completo, ci sono anche alcune altre chiamate a routine di inizializzazione):

int main()
{ setup();
  while(1)
  { loop();
  }
}

Per la parte elettronica, leggi bene nel forum i vari post su come NON danneggiare la scheda. Ad esempio qui:
10 modi per danneggiare Arduino.
http://www.leonardomiliani.com/2013/10-modi-per-distruggere-un-arduino/

vegetablu:
Si chiama:
Arduino Mega 2560 R3 microcontrollore ATmega2560

Si chiama Arduino MEGA 2560. :wink:

R3 indica il layout della scheda e non fa parte del nome ufficiale. E' inutile specificare il microcontrollore dato che lo si evince dal nome: MEGA 2560 proprio perché basato sull'ATmega2560. La prima versione della scheda era indicata solo come Arduino MEGA ed era basata sull'ATmega1280. E' stato aggiunto "2560" nel nome proprio per indicare il nuoco micro usato.

@vegetablu:
per iniziare puoi acquistare la UNO. Anzi per iniziare potresti anche acquistare lo Starter Kit ufficiale. Contiene la UNO ed i componenti per realizzare 15 progetti completi. Fatta pratica, potrai pensare al passaggio alla MEGA.

Grazie mille per gli aiuti. Si ho letto un pò di cose. Adesso non mi resta che comprare Arduino e poi rompervi le scatole ancora una volta per utilizzarlo hihihihihihiihihihihihihiih

leo72:
@vegetablu:
per iniziare puoi acquistare la UNO. Anzi per iniziare potresti anche acquistare lo Starter Kit ufficiale. Contiene la UNO ed i componenti per realizzare 15 progetti completi. Fatta pratica, potrai pensare al passaggio alla MEGA.

Dato che la UNO con la MEGA sono uguali, ma con porte in più, preferisco partire dalla Mega.
Così non servirà comprarne un'altro dopo qualche mese.

Grazie mille per tutti i consigli.

Credo che partirò dalla Mega. A casa ho diverse resistenze, led, diodi, condensatori, ecc. in quanto li utilizzavo per la scuola e per dilettarmi a fare qualche progettino di elettronica così per hobby.
Ho pure la breadboard, quindi sarà inutile prendere il Kit completo di Arduino.

Grazie mille per tutte le info e aiuti.

Mi sono appena fatto regalare dalla mia famiglia Arduino Mega 2560.
Appena ce l'ho con me iniziamo a programmarlo.
Grazie a tutti.

Dato che la UNO con la MEGA sono uguali, ma con porte in più, preferisco partire dalla Mega.

Non sono uguali, cambia il microcontrollore a bordo.
E' un hardware diverso. Se trovi una libreria scritta specificatamente solo per la UNO, potrebbe non girare portata sulla MEGA.

leo72:
Non sono uguali, cambia il microcontrollore a bordo.
E' un hardware diverso. Se trovi una libreria scritta specificatamente solo per la UNO, potrebbe non girare portata sulla MEGA.

Ok. Io ho già ordiato la Mega 2560.
Ho letto un casino di guide e penso di farcela.
Grazie

Hai comprato la MEGA; incomincerai con la MEGA.
Visto che hai giá esperienza di elettronica e di informatica Ti sará facile stare attenti alle diversitá di quelle 2 schede. ( pin diversi per SPI e I2C) piú seriali, piú timer piú ram, Flash.

Ciao Uwe

uwefed:
Hai comprato la MEGA; incomincerai con la MEGA.
Visto che hai giá esperienza di elettronica e di informatica Ti sará facile stare attenti alle diversitá di quelle 2 schede. ( pin diversi per SPI e I2C) piú seriali, piú timer piú ram, Flash.

Ciao Uwe

Grazie mille!
E' arrivata oggi. Arduino Mega 2560 originale :wink:

Ho il mio primo problema.
Ho collegato un servocomando da 3g.

Funziona perfettamente.
Adesso vorrei che se inserisco 0 nel monitor seriale, il servo va a 0°.
Se inserisco 1, il servo va a .
Se inserisco 2, il servo va a .

Ecco il codice, dove sbaglio???
Grazie

PS: nel mentre si accendono e spengono i led collegati.

#include <Servo.h> 
 
Servo myservo;
int velocita = 500;
int control = 0;
int LED = 8;
int LED_S = 13;

 
void setup() 
{ 
  Serial.begin(9600);
  myservo.attach(9);
  pinMode(8, OUTPUT);
  pinMode(13, OUTPUT);
} 
 
void loop() 
{ 

  if(Serial.available() )
  {
    control = Serial.read();
  
    if(control == 1)
    {
      digitalWrite(LED_S, 1);
      myservo.write(180);
      delay(velocita);
      digitalWrite(LED_S, 0);
    }
  
    if(control == 0)
    {
      digitalWrite(LED, 1);
      myservo.write(0);
      delay(velocita);
      digitalWrite(LED, 0);
    }
    
    if(control == 2)
    {
      digitalWrite(LED, 1);
      digitalWrite(LED_S, 1);
      myservo.write(90);
      delay(velocita);
      digitalWrite(LED, 0);
      digitalWrite(LED_S, 0);
    }
    
    
  }

}

Altra domanda.
Se provo a scrivere sul monitor seriale qualche frase, mi scrive alcuni pezzi e man mano ne va salatando altri.
Utilizzo Serial.println() e/o Serial.print();
Hanno funzioni diverse qui?
Sbaglio perchè non è troppo veloce e non riesce a scrivere?
Problemi di array e/o memoria??

Grazie mille

Apro un nuovo topic?
:wink:

Grazie

Apro un nuovo topic?

Sarebbe meglio

comunque il tuo problema e' qui
if(control == '1')
devi racchiudere il carattere da riconoscere tra gli apici

Brunello:
Sarebbe meglio

comunque il tuo problema e' qui
if(control == '1')
devi racchiudere il carattere da riconoscere tra gli apici

Ma 1 è un intero. Anche gli interi devo racchiudere tra apici????

vegetablu:
Ma 1 è un intero. Anche gli interi devo racchiudere tra apici????

No, ma è Serial.read(); che restituisce un carattere, come valore ascii.
Il carattere '1' è il valore ascii 49, quindi se vuoi verificare il "tasto" 1 allora
o scrivi:
if(control == '1')
oppure
if(control == 49)