Arduino una un Linguaggio C/C++ ridotto,
in piu' ha 5 istruzioni specifiche per usare gli I/O del suo processore-microcontrollore.
può assumere solo 2 valori di tensione rispetto a GND
per questo motivo non è possibile collegare direttamente un relè o un motore, che richiedono qualche 100mA, ma si devono utilizzare transistor o MOSFET di pilotaggio.
Quando la corrente che attraversa il pin è eccessiva, si corre il rischio di danno irrimediabile.
Arduino UNO ha ben venti pin digitali. Avete capito bene: venti, non
quattordici come trovate
stampigliato sulla scheda. I sei pin «segreti» non sono altro che gli ingressi
analogici contrassegnati con le sigle da A0 ad A5. I pin analogici corrispondono
ai numeri: 14, 15, 16, 17, 18 e 19. Quando utilizzate uno di questi pin come
«digitale», non potete utilizzarlo anche come ingresso analogico. Per
configurare i pin non dovete fare altro che dichiararne l'utilizzo con pinMode.
nome trae in inganno, perché non produce un segnale analogico, ma un’onda
quadra variabile (cioè un segnale PWM)!
Arduino legge segnali analogici ma non può produrli.
Per usare una luminosta' percentuale 0-100, comodo usare
int pwm = map(lum, 0,100, 0,255);
map restituisce float, che viene converto in int.
Non è necessario dichiarare gli ingressi analogici con PinMode.
Il valore minimo di segnale leggibile è pari a 5V/1024 e cioè 0,0048 V, cioè circa 5 millivolt.
therefore the input range needs to be converted to fit into the smaller output range.
In order to convert this value, use a function called map():
outputValue = map(sensorValue, 0, 1023, 0, 255);
All Arduino boards are programmable in C and C++ .
Arduino IDE permette la scrittura dei programmi e la programmazione della scheda.
programma residente nella Boot Program Section della flash.
Il bootloader viene attivato quando arriva un particolare codice dalla porta seriale:
attende il nuovo sketch e come arriva, lo scrive nell’Application Program Section della flash.
Il bootloader può riscrivere anche se stesso!
Sketch uses 6268 bytes (19%) of program storage space. Maximum is 32256
bytes.
Global variables use 820 bytes (40%) of dynamic memory, leaving 1228 bytes for
local variables. Maximum is 2048 bytes.
Sketch uses 6268 bytes (19%) of program storage space. Maximum is 32256
bytes.
Global variables use 820 bytes (40%) of dynamic memory, leaving 1228 bytes for
local variables. Maximum is 2048 bytes.
Sketch uses 6268 bytes (19%) of program storage space. Maximum is 32256
bytes.
Global variables use 740 bytes (36%) of dynamic memory, leaving 1308 bytes for
local variables. Maximum is 2048 bytes.
Il programma con PROGMEM legge i valori della variabile contrassegnata direttamente dal programma nella FLASH, senza averli copiati in RAM;
vantaggio: risparmio RAM;
svantaggio: leggere FLASH e' piu' lento.
https://docs.arduino.cc/built-in-examples/digital/Button
https://docs.arduino.cc/built-in-examples/digital/Debounce
>> State Change Detection (Edge Detection) for pushbuttons
momentary switch ≡ button ≡ push_button ≡ toggle switch
Ex Processing and Max/MSP
D: CC++ Aeduino ha array bidimensionali?
R:
As explained in the "sticky" at the top of Programming part of the forum, the Arduino uses C++.
es: It is not an "Arduino" language, that somehow fails to handle arrays, due to some sort of incompetence.
Keep contributing, but don't resist good peer review and beware the #define!
REPL read-evaluate-print loop
For most MicroPython boards you can access the MicroPython REPL (read-evaluate-print loop) over their USB serial connections.