Salve a tutti facendo alcune ricerche ho scoperto che il mio sainsmart non e arduino e quindi e programabile solo in c/c++ qualcuno mi sa dire se e possibile convertirli ? e in che modo ? grazie in anticipo
Te lo dico alla romana ... ma de' che stai a parla' ???
Ci vuoi dire di che board parli ? Ci dai un link ? Cosa pensi che abbiamo la palla di vetro ???
Guglielmo
gpb01:
Te lo dico alla romana ... ma de' che stai a parla' ???
+1
Non si capisce un antani
https://www.google.it/search?q=sainsmart+uno+r3&bav=on.2,or.r_cp.r_qf.&bvm=bv.51156542,d.Yms,pv.xjs.s.en_US._-554IbEZc0.O&biw=1280&bih=880&um=1&ie=UTF-8&hl=it&tbm=isch&source=og&sa=N&tab=wi&ei=ufAZUsjaBonatAbxx4DYCQ#facrc=_&imgrc=WQRgRLapPgmw4M%3A%3BjEXsgdD9MaSAnM%3Bhttp%253A%252F%252Fupload.wikimedia.org%252Fwikipedia%252Fcommons%252F6%252F62%252FSainSmart_UNO_R3.JPG%3Bhttp%253A%252F%252Fcommons.wikimedia.org%252Fwiki%252FFile%253ASainSmart_UNO_R3.JPG%3B520%3B520
questa e la mia board la maggiorparte delle librerie di arduino non me le legge sul sito mi dice che il linguaggio e il c/c++...
waread90:
questa e la mia board la maggiorparte delle librerie di arduino non me le legge sul sito mi dice che il linguaggio e il c/c++...
E' solo l'ennesimo clone di Arduino, probabilmente fatto meglio di quelli cinesi low cost, non esiste che non puoi usare le librerie di Arduino visto che l'ambiente di sviluppo è sempre l'ide di Arduino.
astrobeed:
E' solo l'ennesimo clone di Arduino, probabilmente fatto meglio di quelli cinesi low cost, non esiste che non puoi usare le librerie di Arduino visto che l'ambiente di sviluppo è sempre l'ide di Arduino.
Cioè, detto in parole povere, in Arduino programmi in C/C++ .
Non sembra perchè l'IDE Arduino nasconde alcune cose, ma sotto si usa il compilatore gcc perciò Arduino si PROGRAMMA in C/C++.
Ecco una bella info da mettere nella famosa FAQ list che qualcuno voleva fare:
in Arduino programmi in C/C++
Solo la Netduino e i suoi cloni non sono compatibili con Arduino framework, hanno il loro framework in C#.
http://it.wikipedia.org/wiki/NETduino
La tua scheda è Arduino compatibile.
Scusa è, ma il link al sito della Saintsmart dove quella board è descritta ti pesava metterlo ??? Pensi che vediamo come è fatta una scheda guardando le foto ??? ... non credi che è meglio se possiamo leggerne le caratterstiche tecniche ???
Comunque ... ad occhio ... dovrebbe essere QUESTA ... confermi ?
Se SI, stai sbagliado qualche cosa tu perché quella scheda dovrebbe essere compatibile con Arduino UNO e le relative librerie.
Guglielmo
Edit : Astro e Nid mi hanno preceduto XD
waread90:
... la maggiorparte delle librerie di arduino non me le legge sul sito mi dice che il linguaggio e il c/c++...
Un'altra cosa ... ma tu le librerie le metti al posto giusto ???
Guglielmo
Guglielmo si e quella la mia board .
a Allora tanto per iniziare sono inesperto a linguaggio c e qualsiasi cosa lo componga.
Per quanto riguarda la compatibilita non saprei cosa rispondervi, so solo che quando metto un codice in c non mi va, se lo metto in c/c++ parte miracolosamente.
Il problema per me nasce nel generare codici, sostituirli e tappezzare non e difficile, ma a generarli e un bel problema.
Vi faccio un esempio questo e un codice in c/c++ di un countup di un display a 7 segmenti 4 digit se vorrei fare un countdown che arriva a 0 e si ferma come dovrei fare?
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
int f = 6;
int g = 7;
int p = 8;
int d4 = 9;
int d3 = 10;
int d2 = 11;
int d1 = 12;
long n = 0;
int x = 100;
int del = 55;
void setup()
{
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT);
pinMode(d4, OUTPUT);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(p, OUTPUT);
}
void loop()
{
clearLEDs();
pickDigit(1);
pickNumber((n/x/1000)%10);
delayMicroseconds(del);
clearLEDs();
pickDigit(2);
pickNumber((n/x/100)%10);
delayMicroseconds(del);
clearLEDs();
pickDigit(3);
dispDec(3);
pickNumber((n/x/10)%10);
delayMicroseconds(del);
clearLEDs();
pickDigit(4);
pickNumber(n/x%10);
delayMicroseconds(del);
n++;
if (digitalRead(13) == LOW)
{
n = 0;
}
}
void pickDigit(int x)
{
digitalWrite(d1, HIGH);
digitalWrite(d2, HIGH);
digitalWrite(d3, HIGH);
digitalWrite(d4, HIGH);
switch(x)
{
case 1:
digitalWrite(d1, LOW);
break;
case 2:
digitalWrite(d2, LOW);
break;
case 3:
digitalWrite(d3, LOW);
break;
default:
digitalWrite(d4, LOW);
break;
}
}
void pickNumber(int x)
{
switch(x)
{
default:
zero();
break;
case 1:
one();
break;
case 2:
two();
break;
case 3:
three();
break;
case 4:
four();
break;
case 5:
five();
break;
case 6:
six();
break;
case 7:
seven();
break;
case 8:
eight();
break;
case 9:
nine();
break;
}
}
void dispDec(int x)
{
digitalWrite(p, LOW);
}
void clearLEDs()
{
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(p, LOW);
}
void zero()
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
}
void one()
{
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
void two()
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
}
void three()
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
}
void four()
{
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void five()
{
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void six()
{
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void seven()
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
}
void eight()
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
void nine()
{
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
}
Allora,
prima di tutto, cortesemente, modifica il post e cambia il tag QUOTE con il tag CODE (quello che puoi avere con il bottoncino #) che è il più appropriato per il codice.
Poi ... quel programma non è veramente il massimo e può essere molto ottimizzato come occupazione di memoria ed efficienza, comunque ... se per salire parti con n = 0 e poi fai n++, per scendere partirai da n = 9 e farai n-- (n++ incremeta di uno, n-- decrementa di uno). Ovviamente dovrai aggiustare i vari test per evitare che n vada sotto zero
Guglielmo
il countdown parte pero non si ferma a 0 ce qualcosa che posso fare ?
waread90:
il countdown parte pero non si ferma a 0 ce qualcosa che posso fare ?
La mia frase "Ovviamente dovrai aggiustare i vari test per evitare che n vada sotto zero" significava proprio questo ... devi aggiungere un qualche if e decidere cosa fare quando arriva a zero (es. ripartire da 9)
Guglielmo
waread90:
Salve a tutti facendo alcune ricerche ho scoperto che il mio sainsmart non e arduino e quindi e programabile solo in c/c++ qualcuno mi sa dire se e possibile convertirli ? e in che modo ? grazie in anticipo
ecco vedi ] devi ancora "scartarlo" e già da problemi, buttalo via e prendi l'originale,
se no ad ogni "Problema" non sai se sei tu o lui
la sua scheda non e' illegale, e' solo un clone ed anche migliorato di arduino, ha 8 pin analogici (328 smd) e l'alimentazione e' settabile a 5V e 3,3V
a me sembra che deve solo imparare a programmare, e' un mestiere, studia i libri di programmazione, iscriviti ad una scuola tecnica e poi scegli una bella universita'. Auguri
Per favore cambia il titolo a questo topic, non si puo' leggere
Non Ti serve un diploma di laurea per poter programmare Arduino. Segui qualche tutorial o comprati un libro.
Ciao Uwe
Tutte le strade portano a Roma
p.s. Uwe puoi dare uno sguardo ai PM, ti ho chiesto un parere sulla burden, thanks
Sopratutto comincia con gli sketch di esempio dell'IDE che sono commentati e molto meno incasinati di quello che hai postato tu.