Arduino Uno e Arduino Leonardo collegati in wireless con 2 moduli ACP220
Gli schemi per l'Arduino Uno e Leonardo sono identici:
La comunicazione con il modulo APC220 avviene tramite i pin 0 (RX), (RX1 su Leonardo) e 1 (TX), (TX1 su Leonardo). Il piedino 2 alimenta il led tramite una resistenza da 470 ohm e il piedino 3 legge la condizione del deviatore a levetta (switch) usato come interruttore con una resitenza di pull-down da 10 kohm collegata tra l'uscita del pulsante e massa.
Schetch per Arduino Uno:
// set pin:
const int switchPin = 3; // pin dove è collegato lo switch
const int ledPin = 2; // pin dov'è collegato il LED
// variabili:
int switchState = 0; // memorizza lo stato dello switch
int intSerialVal = 0; // memorizza il Serial Value
// inizializza
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(switchPin, INPUT);
Serial.begin(9600);
// legge lo stato iniziale dello switch
switchState = digitalRead(switchPin);
}
// programma loop
void loop()
{
// accende o spegne il led in base al valore letto sulla seriale
intSerialVal = Serial.read(); // legge il valore "0" o "1" sulla seriale
switch (intSerialVal) {
case '0':
digitalWrite(ledPin,LOW); // spegne il led
break;
case '1':
digitalWrite(ledPin,HIGH); // accende il led
break;
}
// se lo stato dello switch è cambiato invia sulla seriale il valore "0" oppure "1"
switch (digitalRead(switchPin)) { // legge lo stato del pin 3 (condizione dello switch)
case HIGH:
if (switchState == LOW) { // se la variabile switchState è LOW e lo switch è aperto
Serial.println("0"); // invia "0" sulla seriale
switchState = HIGH; // pone la variabile switchState a HIGH
}
break;
case LOW:
if (switchState == HIGH) { // se la variabile switchState è HIGH e lo switch è chiuso
Serial.println("1"); // invia "0" sulla seriale
switchState = LOW; // pone la variabile switchState a LOW
}
break;
}
}
Il programma per Arduino Leonardo è identico bisogna solo sostituire tutti i comandi Serial. con Serial1.
Serial.begin(9600) con Serial1.begin(9600)
Serial.read() in Serial1.read()
Serial.println("0") in Serial1.println("0")
Serial.println("1") in Serial1.println("1")
Giuseppe Tamanini
Calendario
Giugno 2023
L
M
M
G
V
S
D
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Data: 02/06/2023 Ora: 18:24Accadde Oggi: * 657 - Sant'Eugenio I diventa Papa
Santi Cattolici: