Stanchi di usare un sacco di fili per collegare Arduino alla breadboard? Anche io lo ero! Per questo motivo ho realizzato A2B, guadagnando in tempo di realizzazione dei prototipi, robustezza meccanica e facilità di debug.
Il nome nasce come "Arduino to Breadboard", ma non mi spiace se volete interpretarlo come il modo più semplice per andare da A a B.
Usare un circuito stampato solo per fare collegamenti mi è sembrato però uno spreco; per questo ho inserito anche alcuni componenti che in genere presentano problemi di cablaggio quando usati con la breadboard:
Trovate il circuito in due versioni praticamente identiche:
Di seguito lo schema elettrico del circuito stampato. Per vedere la versione ad alta risoluzione in formato PDF, cliccare sull'immagine.
Tutti i file del progetto sono scaricabili a fondo pagina.
Possiamo osservare:
Di seguito A2Bs, visto da sopra e da sotto:
Di seguito A2B, funzionalmente molto simile a A2Bs, collegato ad una breadboard. Si noti l'orientamento dei binari rosso e blu delle alimentazioni.
Al solito è bene iniziare la saldatura dai componenti di minor spessore. Quindi, nell'ordine, LM75A, resistori, LED, condensatori, connettori.
A proposito di questi ultimi, è vivamente consigliato saldarli mentre sono inseriti nei connettori complementari o nella breadboard, al fine di garantire il massimo allineamento meccanico.
IInserendo il circuito in Arduino o nella breadboard occorre prestare la massima attenzione per evitare di piegare i pin. L'immagine seguente mostra un dettaglio laterale. A seconda del tipo di connettore, potrebbe essere necessario sollevare di qualche millimetro la breadboard (come nel caso della fotografia) oppure Arduino.
Ovviamente A2B è pienamente utilizzabile con il codice di Arduino e tutte le librerie. Quanto di seguito riportato sono solo brevi codici per effettuare un test veloce della funzionamento.
Per usare il trimmer è necessario inserire il jumper A0. Il codice è preso direttamente dagli esempi:
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delay(1000);
}
Per utilizzare questo sensore è possibile usare le librerie LM75A Arduino library. Non inserendo alcun jumper in A0, A1 e A2 l'indirizzo del sensore è 0x4F.
#include <M2M_LM75A.h>
M2M_LM75A lm75a(0x4F);
void setup() {
lm75a.begin();
Serial.begin(9600);
}
void loop() {
Serial.print(F("Temperature in Celsius: "));
Serial.print (lm75a.getTemperature());
Serial.println(F(" °C"));
delay(1000);
}
Il test del modulo radio nRF24L01+ è più complesso, non tanto perché il codice è più articolato, quanto perché servono due Arduino: un trasmettitore ed un ricevitore. Vengono qui usate le librerie RF24 (nota 3).
Il trasmettitore invia una volta al secondo, alternativamente "0" oppure "1":
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "00002";
void setup() {
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
}
void loop() {
byte OnOff = '0';
Serial.println(OnOff);
radio.write(&OnOff, sizeof(OnOff));
delay(1000);
OnOff = '1';
Serial.println(OnOff);
radio.write(&OnOff, sizeof(OnOff));
delay(1000);
}
Il ricevitore accende o spegne un LED collegato al pin 2 ad ogni ricezione del comando corrispondente:
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "00002";
void setup() {
pinMode(2, OUTPUT);
Serial.begin(9600);
radio.begin();
radio.setPALevel(RF24_PA_MIN);
radio.openReadingPipe(0, address);
radio.startListening();
for (int i = 0; i < 10; i++) {
digitalWrite(2, HIGH);
delay(50);
digitalWrite(2, LOW);
delay(50);
}
Serial.println("Pronto...");
}
void loop() {
if (radio.available()) {
byte stato = '0';
radio.read(&stato, sizeof(stato));
Serial.println(stato);
if (stato == '1')
digitalWrite(2, HIGH);
else
digitalWrite(2, LOW);
}
}
Data di creazione di questa pagina: novembre 2021
Ultima modifica: 6 novembre 2021
A2B - Novembre 2021
Copyright © 2021, Vincenzo Villa - https://www.vincenzov.net
A2B e A2Bs di Vincenzo Villa sono distribuiti con Licenza Creative Commons Attribuzione 4.0 Internazionale