Arduino è una piattaforma open-source di prototipazione elettronica facile da usare sia a livello hardware che software. E 'pensato per artisti, designer, hobbisti, e chiunque sia interessato nella creazione di oggetti o ambienti interattivi.
Si tratta di un microcontrollore flessibile e facile da usare sia per quanto riguarda la componente hardware che software.
La componente hardware open source è disponibile sotto una licenza Creative Commons e si è liberi di adattarla alle proprie esigenze. In questo modo, chiunque lo desideri può legalmente auto-costruirsi un clone di Arduino o derivarne una versione modificata.
Chiunque può scaricarsi l’hardware e modificarlo, utilizzarlo o venderlo.
In questo modo una vasta comunità internazionale di sviluppatori hardware ha iniziato a collaborare e aggiungere componenti alla scheda.
Possiamo trovare molteplici oggetti che contengono il microchip Arduino, nei suoi variabili usi: da router per telefoni a lettori mp3, da sintetizzatori ad amplificatori per la chitarra, fino a hardware da collegare con gli smartphone.
Arduino può ricevere dall’esterno dei segnali da alcuni sensori (di luminosità, di temperatura, di umidità, ecc) e può controllare in uscita dei motori o altri attuatori.
Per poterlo programmare si utilizza il software chiamato proprio Arduino 1.0.
Il suo software può essere scaricato gratuitamente e può girare in ambienti con sistemi operativi:
-Windows
-Mac OS X
-Linux: 32 bit, 64 bit
Esistono in commercio varie schede già pronte all’uso utilizzabili per varie applicazioni.
Pilotaggio di diodi led con Arduino MEGA 2560
Arduino Mega 2560 Rev3 è una scheda elettronica basata sul microcontrollore Atmega2560. Dispone di 54 ingressi/uscite digitali (14 delle quali possono essere utilizzate come uscite PWM), 16 ingressi analogici, 4 porte seriali hardware UART, un oscillatore a 16 MHz, una connessione USB, un jack di alimentazione, un header ICSP e un pulsante di reset.
Esso contiene tutto il necessario per supportare il microcontrollore; è sufficiente connettere Arduino Mega ad un computer tramite un cavo USB o alimentarlo con un trasformatore AC/DC o una batteria per iniziare.
Caratteristiche di Arduino MEGA 2560
Differenze principali rispetto alle precedenti revisioni:
Rev1: inserita una resistenza che porta a massa la linea 8U2 HWBper semplificare l'utilizzo della modalità DFU (Device Firmware Update)
Rev2:
• Pinout 1.0: sono stati agguinti i pin SDA e SCL (vicino AREF) e due nuovi pin vicino a quello di reset, IOREF che permette agli shield di adattarsi alla tensione della scheda.
• Circuito di reset migliorato
• Convertitore USB-seriale basato su ATmega16U2 anzichè ATmega8U2
Specifiche tecniche:
Microcontrollore: ATmega2560
Tensione di funzionamento: 5V
Tensioni in ingresso raccomandate: 7-12V
Massima tensione in entrata: 6-20V
Numero di ingressi/uscite digitali: 54 (di cui 14 utilizzabili come uscite PWM)
Numero di ingressi analogici: 16
Corrente supportata per i pin di ingresso e uscita:40 mA
Corrente supportata per il pin da 3.3V: 50 mA
Memoria Flash: 256 KB (8 KB utilizzati per il bootloader)
SRAM: 8 KB
EEPROM: 4 KB
Frequenza di clock: 16 MHz
Foto del circuito realizzato con Arduino Mega 2560
Esercizi con l'Arduino
La funzione setup
Esempio: La funzione setup
int buttonPin = 3;
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
void loop()
{
// ...
}
La funzione loop
const int buttonPin = 3;
// setup initializes serial and the button pin
void setup()
{
Serial.begin(9600);
pinMode(buttonPin, INPUT);
}
// loop checks the button pin each time,
// and will send serial if it is pressed
void loop()
{
if (digitalRead(buttonPin) == HIGH)
Serial.write('H');
else
Serial.write('L');
delay(1000);
}
La funzione delay
Esempio: Utilizziamo la funzione delay
int ledPin = 13; // LED connected to digital pin 13
void setup()
{
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}
void loop()
{
digitalWrite(ledPin, HIGH); // sets the LED on
delay(1000); // waits for a second
digitalWrite(ledPin, LOW); // sets the LED off
delay(1000); // waits for a second
}
La funzione blink
Esempio: La funzione blink
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Per avere il software completo di alcuni esercizi svolti con Arduino scrivi una e-mail attraverso il box sottostante.
Approfondimenti con link esterni
Per approfondire l'argomento vi consiglio di guardare anche i seguenti link
La casa domotica
Collegamento di più arduini
La casa domotica permette di controllare da remoto diversi sensori e attuatori collegati tramite web con l'ARDUINO.
La cas domotica permette di controllare ad esempio:
- le vie d'accesso alla casa... Cancelli, Portone Basculante
- l'accensione delle luci con timer e orario di accensione
- l'irrigazione del giardino con timer e orario di accensione
- le temperature dei locali o di determinate apperechiature (inverter , quadri elettrici . . .)
- i consumi di elettricità istantanea (watt) dell'intera abitazione e la produzione dell'impianto solare.
Per poter collegare i sensori e i rele' agli utilizzatori un problema che si può presentare è la possibilità di far passare i cavi nei tubi a muro. Per questo motivo si opta per il collegamento di più arduini dislocati nei quadri elettrici della casa e collegati tra loro in seriale e quindi con 3 fili: TX,RX e GND.
Si possono scegliere controllori arduino periferici la versione "UNO" con disponibili 12 porte digitali e 6 porte analogiche.
Per approfondimenti visita il sito
http://www.centrodigravita.it/index.php/progetti/nuovi-progetti/123-la-casa-domotica?showall=1&limitstart=