Centralina irrigazione arduino con LCD

Il progetto di realizzare una centralina irrigazione arduino continua e siccome in molti mi hanno chiesto di poter avere un display LCD sulla centralina ho deciso di riprendere alcuni progetti e fonderli insieme.

Centralina irrigazione arduino

Aggiungere un display LCD 16×2 ed i pulsanti puoi utilizzare la Keypad LCD ed eseguire le regolazioni dell’ora oltre alle fasce di irrigazione.

Purtroppo la keypad LCD è incompatibile con la Relay Shield scelta in precedenza per il progetto in quanto la utilizzano entrambe i pin 5,6,7,8 per controlli differenti, la relè li usa per:

relay shield

e la Keypad LCD utilizza gli stessi pin per controllare il display 16×2.

Una controindicazione è data dal fatto che in entrambe le shield non puoi cambiare i pin a cui i circuiti sono connessi e questo ti porta a dover scegliere quale sostituire, ho preferito sostituire la keypad LCD con il display ACM1602B già utilizzato in questo articolo e 5 pulsanti collegati some la Keypad LCD.

Dedicherò alla connessione dei pulsanti un articolo specifico.

Centralina irrigazione arduino con LCD ACM1602B

il display ACM1602B è stato oggetto di alcuni articoli sia come semplice display sia collegato alla RTC Shield per visualizzare data ed ora, trovi tutta la descrizione in questo articolo.

Prima di usarlo nel progetto della centralina irrigazione arduino è necessario che tu modifichi le connessioni e lo sketch utilizzato, per cui partendo dall’articolo in cui il display già convive con la RTC Shield esegui le modifiche per consentire al display di convivere anche con la Relay Shield della centralina irrigazione arduino.

Collegamenti della centralina irrigazione arduino con l’ACM1602B

Il display ACM1602B presenta come collegamenti i seguenti:

centralina irrigazione Arduino

  • Enable
  • RS
  • D4
  • D5
  • D6
  • D7
  • Contrasto
  • BLACKLIGHT

tutti questi pin devono essere collegati ad Arduino come mostrato in figura:

centralina irrigazione Arduino connessioni

in pratica sposterai i pin D4-D7 dai pin 7, 6, 5, 4 di Arduino ai pin 10, 11, 12, 13 lasciando liberi i pin 5,6,7 utilizzati dalla Relay Shield.

Sposta anche i pin RS ed EN rispettivamente da 12 e 11 ai pin 4 e 3 di arduino.

Il pin 3 era usato per gestire il contrasto del display, puoi utilizzare il pin 9 che resta libero dopo lo spostamento.

Lo sketch di test per centralina irrigazione arduino LCD

lo sketch che leggi di seguito parte dallo sketch dell’orologio arduino realizzato con la RTC Shield ed il display ACM1602B a cui dovrai applicare le modifiche per farlo funzionare con le nuove connessioni.

Lo scopo di questo sketch è consentirti di verificare che tutte le shield del progetto possano funzionare anche con il display LCD 16×2 appenna cablato.

/*
 * RTC & LCD
 *
 * Autore: Mauro Alfieri
 * Tw: @mauroalfieri
 *
 * Web: https://www.mauroalfieri.it
 */

#include <Wire.h>
#include <RTClib.h>
#include <LiquidCrystal.h>

#define BACKLIGHT 2
#define CONTRAST  9

char buffer[10];

RTC_DS1307 RTC;
LiquidCrystal lcd(4, 3, 10, 11, 12, 13);

void setup () {
    pinMode( BACKLIGHT, OUTPUT );
    pinMode( CONTRAST, OUTPUT );
    digitalWrite( BACKLIGHT, HIGH );
    analogWrite( CONTRAST, 40 );

    Wire.begin();
    RTC.begin();
    lcd.begin(16, 2);

    RTC.sqw(1);
    if (! RTC.isrunning()) {
      RTC.adjust(DateTime(__DATE__, __TIME__));
    }
}

void loop () {

    DateTime now = RTC.now();
    lcd.clear();

    sprintf(buffer,  "%02d/%02d/%d", now.day(), now.month(), now.year());
    lcd.setCursor(0,0);
    lcd.print( buffer );

    char buffer[10] = "";

    sprintf(buffer,  "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
    lcd.setCursor(0,1);
    lcd.print( buffer );

    delay(1000);
}

le linee in cui devi eseguire le modifiche sono la linea 15 che cambia da:

#define CONTRAST  3

a

#define CONTRAST  9

e la linea 20 che devi cambiare da:

LiquidCrystal lcd(12, 11, 7, 6, 5, 4);

a

LiquidCrystal lcd(4, 3, 10, 11, 12, 13);

Il resto dello sketch puoi lasciarlo invariato.

Eseguendo l’upload dello sketch sulla centralina irrigazione arduino con LCD visualizzerai correttamente la data e l’ora impostata nella RTC Shield è la dimostrazione che il tutto funziona in modo corretto e non ci sono conflitti tra i pin utilizzati dalle shield del progetto.

Al prossimo articolo in cui aggiungeremo i pulsanti alla centralina irrigazione arduino.

Prima di inserire un commento, per favore, leggi il regolamento

Permanent link to this article: https://www.mauroalfieri.it/elettronica/centralina-irrigazione-arduino-lcd.html

20 pings

Skip to comment form

  1. […] « Centralina irrigazione arduino con LCD […]

  2. […] Centralina irrigazione arduino con LCD […]

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.