Login Login
MORE

WIDGETS

Widgets

Wanted articles
Who is online?
Article tools

Domotica Device Arduino

From Aino Wiki

Jump to: navigation, search

Sito ufficiale
Il materiale qui raccolto viene da molte fonti ma soprattutto dal libro "Il manuale di Arduino" di Paolo Aliverti.

Doc

Info

Uno

Uno R3

Arduino R3.jpg

Il microcontrollore di Arduino Uno R3 è ATmega328 creato da Atmel con la famiglia megaAVR (precedentemente era della Microchip Technology acquisita da Atmel nel 2016).

Arduino Uno R3-pinout.png

Tech specs

Microcontroller ATmega328P
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limit) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
PWM Digital I/O Pins 6
Analog Input Pins 6
DC Current per I/O Pin 20 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32 KB (ATmega328P) of which 0.5 KB used by bootloader
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)
Clock Speed 16 MHz
LED_BUILTIN 13
Length 68.6 mm
Width 53.4 mm
Weight 25 g

Uno R4

Arduino Rev4 WiFi.jpg
Arduino Uno Rev4 Pinout 01.jpg

Tech specs

Board Name Arduino® UNO R4 WiFi
SKU ABX00087
Microcontroller Renesas RA4M1 (Arm® Cortex®-M4)
USB USB-C® Programming Port
Pins Digital I/O Pins 14
Pins Analog input pins 6
DAC 1
PWM pins 6
Communication UART Yes, 1x
I2C Yes, 1x
SPI Yes, 1x
CAN Yes 1 CAN Bus
Power Circuit operating voltage 5 V (ESP32-S3 is 3.3 V)
Input voltage (VIN) 6-24 V
DC Current per I/O Pin 8 mA
Clock speed Main core 48 MHz
ESP32-S3 up to 240 MHz
Memory RA4M1 256 kB Flash, 32 kB RAM
ESP32-S3 384 kB ROM, 512 kB SRAM
Dimensions Width 68.85 mm
Length 53.34 mm

Doc ufficiale:

Caratteristiche

  • Può esser alimentato da USB mediante una tensione da 5V o da una presa a jack da 5mm (che è nell'angolo opposto alla presa USB) con una tensione che può andare da 5V fino a 20V (anche se è consigliabile non superare i 12V) sarà poi ridotta a 5V da un regolatore interno. NOTA con Arduino Uno R4 invece, può essere alimentato fino a 24V sia dal jack che dal pin VIN che sono entrambe collegati.
  • Massimo carico di corrente: 40mA / 50mA
  • Massima tensione supportata dai pin di Arduino è 5V. La tensione fornita da Arduino non è mai 5V ma qualcosa di meno 4.88mV.
  • Arduiono Uno legge i segnali analogici ma non può produrli ma su alcune schede come Arduino Zero, Arduiono Due e quelle della famiglia MKR (progettati per IoT, internet delle cose) è possibile intervenire sui "passi" utilizzabili usando l'istruzione AnalogWrite(). Arduino UNO R4 può usare il pin A0 come uscita analogica.
  • i pin di arduino possono rilevare impulsi che vanno dai 10 microsecondi a quasi 3 minuti.
  • Arduino non è in grado di restituire data ed ora ma sarà possibile collegare un ulteriore chip chiamato RTC che funziona da orologio grazie ad una batteria tampone.
  • il tasto Reset riavvia Arduino nel senso che è come se Arduino fosse appena acceso.

I PIN

  • i pin vanno sempre dichiarati nella sezione setup() dello sketch.
  • il limite di corrente dei pin e di qualche decina di milliampere e per questo motivo NON è possibile collegarvi un relè o un motore (es. si potrenno usere dei transistor).
Modello Corrente per I/O Pin 5V Corrente per I/O Pin 3.3V
Arduino Uno R3 DC Current: 20 mA DC Current: 50 mA
Arduino Uno R4
Minima e WiFi
DC Current:  8 mA .
  • il pin Vin (il primo del gruppo Power) è collegato direttamente all'ingresso di alimentazionee si può utilizzare per prelevare una tensione che può esser più elevata dei 5V della USB nel caso Arduino sia alimentato mediante la presa a jack.
  • il pin AREF può leggere tensioni comprese tra 0 e 5V che trasformerà in un numero tra 0 e 1023. Questo valore servirà opportunamente nell'elaborazione eseguita dallo sketch.
  • Sull'Arduino Uno R4 c'è un nuovo pin, VRTC, esso è usato per fornire corrente al scopo di mantenere l'orario attivo, infatti, si può collegare una batteria da 1.5V a 3.3V collegando il positivo sul VRTC ed il negativo sul pin accanto GND. Accanto al GND c'è il pin OFF che può esser usato per "spegnere" la scheda, basterà mandarlo in corto col pin GND; questo NON funziona in caso di alimentazione da USB ma solo usando il pin VIN o il jack di alimentazione.
  • Sull'Arduino Uno R4 il pin analogico A0 può essere usato come uscita analogica (DAC, Digital Analog Converter) questo anche sui nuovi dispositivi ovvero si può usare per generare segnali analogici.

Per essere utilizzati vanno dichiarati nella sezione setup() delo skech.

Pin digitali
Sulla DX della scheda e che vanno da 0 a 13, sono pin GPIO (General Purpose Input\Output) hanno la funzione di assumere lo stato 0 (tensione a 0V = LOW) o 1 (tensione a 5V = HIGH). Alcuni hanno accanto alla label una tilde ~ sono quelli PWM (Pulse with modulation) ovvero che possono assumere alternativamente 0V o 5V in un intervallo di tempo fisso a piacere.

  • i pin 0 e 1 sono condivisi con la porta seriale collegata alla USB e quindi se sono utilizzati potrebbero interferire con l'upload dello skech.
  • il pin 13 ha in più la funzione di accendere il led L di Arduino quando è in stato HIGH (tensione a 5V).
  • sia sull'Uno R3 che R4 i 4 pin da D10 a D13 sono utilizzabili anche per le connessioni mediante il protocollo SPI (Serial Peripheral Interface), sul R4 per le comunicazioni SPI si posson usare anche i Pin 1, 3 e 4 che sono sulla destra della matrice led.

Pin analogici
Sulla SX della scheda e che vanno da A0 a A5.
Nelle comunicazioni I2C, il pin A0 coincide col pin SDA (dati seriali) ed il pin A1 col SCL (clock seriale).
Normalmente i pin analogici sono usati per leggere segnali ad esempio usando il comando analogRead(numero_porta_analogioca);. Questa funzione restituirà dei valori corrispondenti la tensione (da 0 a 5V) su uno dei pin da A0 a A5 e sarà un valore da 0 e 1023. Notare che il valore di tensione più piccolo sarà 5V/1024 ovvero 0.0048V
NOTE

  • I pin da A0 a A5 possono essere usati in caso di necessità come pin digitali ma con i numeri che vanno da 14 a 19. Pertanto come nei casi dei pin digitali avremo:
void setup() {
   pinMode(16, INPUT); //Per poter usare il pin analogico A3 come il digitale 16 in modalità INPUT
}
  • Arduino Uno R4 consente di usare il pin A0 come uscita analogica.

Nano

Nano ESP32

Arduino Nano ESP32 01.jpg

Pagina ufficiale: qui
Tech spec

Board Name Arduino® Nano ESP32
SKU ABX00092
Microcontroller u-blox® NORA-W106 (ESP32-S3)
USB connector USB-C®
Pins Built-in LED Pin 13
Built-in RGB LED pins 14-16
Digital I/O Pins 14
Analog input pins 8
PWM pins 5
External interrupts All digital pins
Connectivity Wi-Fi® u-blox® NORA-W106 (ESP32-S3)
Bluetooth® u-blox® NORA-W106 (ESP32-S3)
Communication UART 2x
I2C 1x, A4 (SDA), A5 (SCL)
SPI D11 (COPI), D12 (CIPO), D13 (SCK). Use any GPIO for Chip Select (CS)
Power I/O Voltage 3.3 V
Input voltage (nominal) 6-21 V
Source Current per I/O Pin 40 mA
Sink Current per I/O Pin 28 mA
Clock speed Processor up to 240 MHz
Memory ROM 384 kB
SRAM 512 kB
External Flash 128 Mbit (16 MB)
RAM 8MB (NORA-W106-10B)
Dimensions Width 18 mm
Length 45 mm

Nano 33 IoT

Arduino Nano 33 IoT.jpg
Scheda commerciale qui
  • Usa solo tensioni a 3.3V

Tech spec

Microcontroller SAMD21 Cortex®-M0+ 32bit low power ARM MCU (datasheet)
Radio module u-blox NINA-W102 (datasheet)
Secure Element ATECC608A (datasheet)
Operating Voltage 3.3V
Input Voltage (limit) 21V
DC Current per I/O Pin 7 mA
Clock Speed 48MHz
CPU Flash Memory 256KB
SRAM 32KB
EEPROM none
Digital Input / Output Pins 14
PWM Pins 11 (2, 3, 5, 6, 9, 10, 11, 12, 16 / A2, 17 / A3, 19 / A5)
UART 1
SPI D11 (COPI), D12 (CIPO), D13 (SCK). Use any GPIO for Chip Select (CS).
I2C A4 (SDA), A5 (SCL)
Analog Input Pins 8 (ADC 8/10/12 bit)
Analog Output Pins 1 (DAC 10 bit)
External Interrupts All digital pins (all analog pins can also be used as interrput pins, but will have duplicated interrupt numbers)
LED_BUILTIN 13
USB Native in the SAMD21 Processor
IMU LSM6DS3 (datasheet)
Length 45 mm
Width 18 mm
Weight 5 gr (with headers)

Nano

Il clone è anche chiamato Arduino Mini ATmega328.
Pagina ufficiale Arduino: qui
La scheda offre 20 pin digitali di input\output (da D0 a D13), 8 pin analogici (da A0 a A7, opzionalmente possono essere comunque usati come digitali), 6 pin di PWM output, porta di comunicazione\alimentazione mini-B-USB. Ha funzione di splep mode. Master/Slave SPI Serial Interface.

I pin usati col protocollo di comunicazione seriale sincrona SPI dedicati alla comunicazione con altri dispositivi SPI sono:

  • D10 (SS) (Slave Select): Seleziona il dispositivo slave con cui comunicare. Su Nano, può essere usato anche come pin digitale generico.
  • D11 (MOSI) (Master Out Slave In): Trasmette dati dal Master (Arduino) allo Slave.
  • D12 (MISO) (Master In Slave Out): Riceve dati dallo Slave al Master.
  • D13 (SCK) (Serial Clock): Genera il segnale di clock per sincronizzare la comunicazione.

Come usarli

  • Collega i dispositivi: I pin SCK, MOSI, MISO e GND vanno collegati a tutti i dispositivi SPI in parallelo.
  • Seleziona gli slave: Ogni dispositivo slave deve avere il proprio pin Slave Select (SS) collegato a un pin digitale diverso su Arduino (es. D2, D3, D4, ecc.) per selezionarlo individualmente.
  • Utilizza la libreria: Includi la libreria SPI.h nel tuo sketch Arduino e inizializza la comunicazione con SPI.begin().
Video di Paolo Aliverti: qui
Arduino Nano.jpg

Tech specs

Microcontroller ATmega328
Architecture AVR
Operating Voltage 5 V
Flash Memory 32 KB of which 2 KB used by bootloader
SRAM 2 KB
Clock Speed 16 MHz
Analog IN Pins 8
EEPROM 1 KB
DC Current per I/O Pins 20 mA (I/O Pins)
Input Voltage 7-12V
Digital I/O Pins 22 (6 of which are PWM)
PWM Output 6
Power Consumption 19 mA
PCB Size 18 x 45 mm
Weight 7 g
Product Code A000005
Arduino nano schema pin 01.jpg
Altro:
Arduino nano schema pin 02.jpg

GIGA

(Compatibile) MEGA2560 R3

Arduino Comp MEGA2560 R3 01.jpg
Scheda compatibile MEGA2560 R3 (CH340), marca VANCOM, dichiarata come compatibile con Arduino ATmega2560-16AU, Archiviazione Espandibile da 32GB/128GB/64GB/16GB/8GB tramite Slot per Scheda TF, Alimentazione USB-C Power Delivery, Velocità Orologio 16Mhz, RAM 16Mhz, Memoria Flash 16Mhz.
Caratteristica Valore
Chip microcontrollore ATmega2560
Frequenzqa operativa 16 MHz
Memoria flash 256 KByte
SRAM 8 KByte
EEPROM 4 KByte
Alimentazione e I/O USB-C 5V
Alimentazione esterna 7 - 12 V al pin VIN

Installazione IDE di sviluppo

L'amiente di sviluppo naturale è "Arduino IDE" ma ben presto ci si accorgerà che è limitante rispetto ad altri strumenti come Visual Studio Code corredato da apposite estensioni per gli sviluppi, vedere guida interna qui VS Code start. L'IDE standard può esser comunque usato per eventuali verifiche in ambiente "naturale" e casi particolari.

Configurazione

In Windows Arduino collegato alla porta USB è riconosciuto come porta COM, questo e verificabile lanciando "Device Manager".
ATTENZIONE dopo aver lanciato Arduino IDE di si dovrà associare:

  • il dispositivo da Tools\Board\Arduino AVR Boards\Arduino Uno (o altro della famiglia etc)
  • la porta COMx così come trovato impostato in Device Manager. Da Tools\Port scegliere la porta nuova spuntata in Device Manager.

Arduino Cloni

Le schede Arduino non ufficiali potrebbero non esser riconosciute da Windows e sarà necessario installare il driver per il chip CH340.
Per installare il driver:

  • Scaricare il pacchietto dal sito wchl-ic.com qui, eseguire il setup e cliccare su INSTALL.
  • Se il sistema operativo ha già i drivers necessari un popup lo notificherà
  • Riavviare il computer se necessario

Troubleshooting:

  • Verificare che il cavo USB sia corretto (ce ne sono alcuni usabili SOLO per la carica, altri sono anche per DATI), eventualmente cambiare porta per ulteriore verifica.
  • Installare il pacchetto "Arduino XXX platform" da Arduino IDE Board Manager.
  • Verificare Device Manager di Windows se si aggiorna col le info del dispositivo ed individuare la nuova porta (Deve essere tra le porte COM), potrebbe chiamarsi anche "USB Serial Device (COMx)"

Sketch

Sono i programmi di Arduino scritti in linguaggio C++ e ne seguono le regole. Di default ogni nuovo programma è preimpostato come segue:

void setup()
{
}
void loop()
{
}

Ogni programma DEVE avere le due procedure (o funzioni void): setup() e loop()!

Cloud

Arduino da la possibilità, nativa su alcune schede che banalmente hanno il WiFi con il microcontrollore ESP32, di controllare il proprio dispositivo dal cloud. Questo da, ad esempio, la possibilità di controllare il proprio Arduino e la sua applicazione da cellulare quindi non solo si potrà pilotare la propria creazione direttamente ma anche indirettamente da cellulare attraverso il cloud.
Presupposto è che sia installato sul proprio computer l'Arduino Agent.

Step necessari

Usando una semplicità brutale gli step sono i seguenti:

  1. Configurare il proprio dispositivo:
    • Accedere ad Arduino Cloud
    • Associare la scheda Arduino (es. ESP32, MKR) e creare della variabili cloud
    • Caricare lo sketch apprpropriato sulla scheda tramite l'apposito IDE assicurandosi prima che effettivamente il dispositivo sia connesso al cloud.
  2. Creare una Dashboard
    • Nella sezione "Dashboard" di Arduino Cloud (o piattaforma scelta), aggiungi widget (slider, pulsanti, grafici).
    • Associa ogni widget alle variabili che hai definito per il tuo dispositivo (es. un pulsante alla variabile luce).
  3. Usare l'App dullo smartphone
    • Scarica l'app ufficiale (es. Arduino IoT Remote per Android/iOS).
    • Accedi con lo stesso account.
    • L'app mostrerà automaticamente le tue dashboard e i tuoi dispositivi configurati, permettendoti di monitorare e controllare tutto in tempo reale.

Kit

Starter Kit

Componenti e datasheet Arduino uno R3
1 Projects Book (170 pages),
Arduino Uno,
USB cable,
Breadboard 400 points,
70Solid core jumper wires,
Easy-to-assemble wooden base,
9v battery snap,
1 Stranded jumper wires (black),
1 Stranded jumper wires (red),
Phototransistor,
Potentiometer 10kOhms,
10Pushbuttons,
Temperature sensor [TMP36],
Tilt sensor,
alphanumeric LCD (16x2 characters),
1LED (bright white),
LED (RGB),
LEDs (red),
LEDs (green),
LEDs (yellow),
LEDs (blue),
Small DC motor 6/9V,
1Small servo motor,
Piezo capsule [PKM22EPP-40<a data-tabindex-counter="1" data-tabindex-value="none" href="https://www.arduino.cc/documents/datasheets/piezoCapsule.pdf" target="_blank" rel="noreferrer noopener">],
H-bridge motor driver [L293D],
Optocouplers [4N35],
Mosfet transistors [IRF520],
Capacitors 100uF,
Diodes [1N4007],
Transparent gels (red, green, blue),
Male pins strip (40x1),
20 Resistors 220 Ohms,
5Resistors 560 Ohms,
Resistors 1 kOhms,
Resistors 4.7 kOhms,
20 Resistors 10 kOhms,
5Resistors 1 MOhms,
Resistors 10 MOhms 

Note

Differenze nella famiglia Adrduino

  • Su Arduino Uno R3 a differenza dei nuovi modelli è possibile accedere subito alla seriale mentre sui nuovi occorre attendere impostando dei delay ed attendere che la porta sia pronta.
while (!Serial);

(Mappa e Link)


Arduino indice | Integrazioni tipiche | Arduino Progetti


C++ Info fondamentali | Domotica | ESP32 indice | ESP8266 | Dizionario Elettronica | Elettronica | Elettronica Appunti


Parole chiave:

Author