Inhoudsopgave:

Klok, LCD-scherm, infrarood om in te stellen - Ajarnpa
Klok, LCD-scherm, infrarood om in te stellen - Ajarnpa

Video: Klok, LCD-scherm, infrarood om in te stellen - Ajarnpa

Video: Klok, LCD-scherm, infrarood om in te stellen - Ajarnpa
Video: E18-D80NK Инфракрасный датчик приближения для предотвращения препятствий (инфракрасный датчик) 2024, November
Anonim
Klok, LCD-scherm, Infrarood om in te stellen
Klok, LCD-scherm, Infrarood om in te stellen
Klok, LCD-scherm, Infrarood om in te stellen
Klok, LCD-scherm, Infrarood om in te stellen

Bouw een real-time klok die de activeringstijd binnen een paar minuten per jaar bijhoudt. De code en componenten kunnen eenvoudig worden hergebruikt in andere projecten.

Dit project vereist een minimale hoeveelheid bedrading en geen solderen. De tijdwaarnemer is een DS3231 realtime klok. De tijd wordt weergegeven op een goedkope 1602 LCD. Beide modules maken gebruik van I2C-communicatie. I2C gebruikt slechts 2 draden per module bij aansluiting op een Arduino. Ik gebruik een Arduino Nano omdat het mooi op een breadboard past. De volgende instructies werken met een Arduino Uno omdat deze dezelfde pinnummers heeft als de Nano voor dit project. Het andere onderdeel is de infraroodontvanger. Hiermee kunt u een gewone afstandsbediening gebruiken, zoals de afstandsbediening van een tv, om de tijd in te stellen, net zoals u zou doen op onze smart-tv. De infraroodontvanger heeft slechts één draad nodig om hem op de Arduino aan te sluiten.

De eerste stap is het testen van de Arduino en het aansluiten op het breadboard. De volgende stappen zijn ontworpen om zelfstandig te werken. Elke stap heeft bedradingsinstructies en testinstructies. Wanneer ik projecten bouw, bedraad en test ik elk onderdeel om te bevestigen dat ze werken. Dit helpt bij het integreren van een aantal componenten, omdat ik weet dat elk werk en ik me kan concentreren op de integratievereisten.

Deze Instructable vereist dat je de Arduino IDE hebt geïnstalleerd. Je moet ook de basisvaardigheden hebben om een Arduino-schetsprogramma te downloaden via de links in dit project, een directory voor het programma te maken (directorynaam hetzelfde als de programmanaam). De volgende stappen zijn het laden, bekijken en bewerken van het programma in de IDE. Upload vervolgens het programma via een USB-kabel naar uw Arduino-bord.

Benodigdheden

  • Nano V3 ATmega328P CH340G Microcontrollerkaart voor Arduino. Als alternatief kunt u een Uno gebruiken.
  • DS3231 realtime klok en een CR2032-batterij.
  • 1602 LCD met een I2C-module
  • Infrarood ontvanger en afstandsbediening. Ik gebruikte een IR draadloze afstandsbedieningsmodulekit die werd geleverd met een infraroodontvanger en een infraroodafstandsbediening.
  • Breadboard
  • Draad kabels
  • 5 volt muuradapter

Ik kocht de onderdelen op eBay, meestal van distributeurs in Hong Kong of China. Amerikaanse distributeurs hebben soms dezelfde of vergelijkbare onderdelen voor redelijke prijzen en snellere levering. De Chinese onderdelen hebben een levertijd van 3 tot 6 weken. De distributeurs die ik heb gebruikt zijn allemaal betrouwbaar.

Geschatte kosten: Nano $ 3, DS3231 $ 1, LCD $ 3, Infraroodkit $ 1, breadboard $ 2, pakket van 40 draadkabels $ 1, $ 1 voor een 5 volt muuradapter. Totaal, ongeveer $ 11. Let op, ik heb de Nano en LCD gekocht met de breadboard-pinnen al op hun plaats gesoldeerd, omdat mijn soldeervaardigheden slecht zijn. Voor de klokbatterij kocht ik een pakket van 5 lithium CR2032-batterijen voor ongeveer $ 1,25. Ik kocht ook een pakket van 5 DS3231's omdat ik van tijdstukken houd. Dit project maakt gebruik van 1 breadboard. Ik kocht een 3 breadboard-pakket voor ongeveer $ 7; een betere deal dan het kopen van een individueel bord.

Stap 1: voeg de Arduino Nano toe aan het breadboard

Voeg de Arduino Nano toe aan het Breadboard
Voeg de Arduino Nano toe aan het Breadboard

Sluit de Arduino Nano aan op het breadboard. Of, als je wilt, kun je een Arduino Uno gebruiken voor dit project; ze gebruiken allebei dezelfde pinnen voor dit project. Sluit de Nano (of Uno) via een USB-kabel aan op je computer.

Sluit de stroom en aarde van de Arduino aan op de voedingsbalk van het breadboard. Sluit de Arduino 5+ pin aan op de positieve balk van het breadboard. Sluit de Arduino GRN (aarde) pin aan op de negatieve (aarde) balk van het breadboard. Dit wordt gebruikt door andere componenten.

Download en voer het basis Arduino-testprogramma uit: arduinoTest.ino. Wanneer het programma wordt uitgevoerd, gaat het LED-lampje aan boord gedurende 1 seconde aan en vervolgens gedurende 1 seconde uit. Er worden ook berichten geplaatst die kunnen worden bekeken in de Arduino IDE Tools/Serial Monitor.

+++ Opstelling.

+ Geïnitialiseerd de ingebouwde LED digitale pin voor output. LED is uit. ++ Ga naar lus. + Lusteller = 1 + Lusteller = 2 + Lusteller = 3 …

Wijzig als oefening de tijdvertraging op het knipperende lampje, upload het gewijzigde programma en bevestig de wijziging.

Op de bovenstaande foto is een 140-delige soldeerloze breadboard-jumperdraadkitdoos die je kunt krijgen voor 3 tot 5 dollar. Ze maken borden netter dan het gebruik van lange kabels voor korte verbindingen.

Stap 2: Voeg de DS3231-klokmodule toe en sluit deze aan op de Arduino

Voeg de DS3231-klokmodule toe en sluit deze aan op de Arduino
Voeg de DS3231-klokmodule toe en sluit deze aan op de Arduino

Steek de klokmodule in het breadboard. Sluit de GND-pin van de klokmodule aan op de grondbalkstrip van het breadboard. Sluit de VCC-pin van de klokmodule aan op de positieve staafstrip van het breadboard. Sluit de klokmodule SDA (data) pin aan op de A4 pin van de Arduino (I2C data pin). Sluit de klokmodule SCL (klok) pin aan op pin A5 van de Arduino (I2C klokpin).

Installeer in de Arduino IDE een DS3231 Clock Library. Selecteer Extra/Bibliotheken beheren. Filter je zoekopdracht door 'rtclib' in te typen. Selecteer RTClib van Adafruit (ter referentie, de bibliotheeklink).

Download en voer het basistestprogramma uit: clockTest.ino. Wanneer het programma wordt uitgevoerd, worden kloktijdberichten geplaatst die kunnen worden bekeken in de Arduino IDE Tools/Serial Monitor.

+++ Opstelling.

+ Klok ingesteld. ++ Ga naar lus. ---------------------------------------- + Huidige datum en tijd: 2020/3/ 22 (zondag) 11:42:3 + huidige datum en tijd: 2020/3/22 (zondag) 11:42:4 + huidige datum en tijd: 2020/3/22 (zondag) 11:42:5 …

Gebruik als oefening rtc.adjust() om de tijd en datum van de klok in te stellen, het gewijzigde programma te uploaden en de wijziging te bevestigen.

rtc.adjust(DateTime(2020, 3, 19, 10, 59, 50)); // Eerste lentedag, 2020.

Stap 3: Voeg de 1602 LCD-displaymodule toe en sluit deze aan op de Arduino

Voeg de 1602 LCD-displaymodule toe en sluit deze aan op de Arduino
Voeg de 1602 LCD-displaymodule toe en sluit deze aan op de Arduino

Steek de LCD-module in het breadboard. Sluit de GND-pin van de klokmodule aan op de grondbalkstrip van het breadboard. Sluit de VCC-pin van de klokmodule aan op de positieve staafstrip van het breadboard. Sluit de klokmodule SDA (data) pin aan op de A4 pin van de Arduino (I2C data pin). Sluit de klokmodule SCL (klok) pin aan op pin A5 van de Arduino (I2C klokpin).

Installeer in de Arduino IDE een 1602 LCD-bibliotheek. Selecteer Extra/Bibliotheken beheren. Filter uw zoekopdracht door 'LiquidCrystal' in te typen. Selecteer LiquidCrystal I2C van Frank de Barbander (ter referentie, de bibliotheeklink).

Download en voer het basistestprogramma uit: lcd1602Test.ino. Wanneer het programma wordt uitgevoerd, worden kloktijdberichten geplaatst die kunnen worden bekeken in de Arduino IDE Tools/Serial Monitor.

+++ Opstelling.

+ LCD klaar voor gebruik. +++ Ga naar lus. + de teller = 1 + de teller = 2 + de teller = 3 …

Wijzig als oefening de berichten op het LCD-scherm, upload het gewijzigde programma en bevestig de wijziging.

Stap 4: Voeg de infraroodontvanger toe en sluit deze aan op de Arduino

Voeg de infraroodontvanger toe en sluit deze aan op de Arduino
Voeg de infraroodontvanger toe en sluit deze aan op de Arduino

Steek de vrouwelijke naar mannelijke kabeldraden in de infraroodontvanger (vrouwelijke uiteinden). Sluit de aardingspin van de klokmodule aan op de grondbalkstrip van het breadboard. Sluit de voedingspin van de klokmodule aan op de positieve balkstrip van het breadboard. Sluit de uitgangspin van de infraroodontvanger aan op de Arduino A1-pin.

Infraroodontvanger aansluiten, pinnen van linksboven naar rechts:

Meest links (naast de X) - Nano-pin A1 Midden - 5V Rechts - aarde

A1 + - - Nano-penverbindingen

| | | - Infrarood ontvanger pinnen --------- |S | | | | --- | | | | | | --- | | | ---------

Installeer in de Arduino IDE een infraroodbibliotheek. Selecteer Extra/Bibliotheken beheren. Filter uw zoekopdracht door 'IRremote' in te typen. Selecteer IRremote by Shirriff (ter referentie, de bibliotheeklink).

Download en voer het basistestprogramma uit: infraroodReceiverTest.ino. Richt tijdens het uitvoeren van het programma uw afstandsbediening op de ontvanger en druk op verschillende knoppen, zoals het cijfer van 0 tot 9. Seriële berichten worden uitgevoerd (afgedrukt) die kunnen worden bekeken in de Arduino IDE Tools/Serial Monitor.

+++ Opstelling.

+ De infraroodontvanger geïnitialiseerd. ++ Ga naar lus. + Toets OK - Toggle + Toets > - volgende + Toets < - vorige + Toets omhoog + Toets omlaag + Toets 1: + Toets 2: + Toets 3: + Toets 4: + Toets 6: + Toets 7: + Toets 8: + Toets 9: + Toets 0: + Toets * (Return) + Toets # (Exit)

Gebruik als oefening een afstandsbediening van de tv om de afgedrukte waarden te zien. U kunt het programma vervolgens aanpassen om de waarden in de switch-instructie van de functie infraroodSwitch() te gebruiken. Druk bijvoorbeeld op de toets "0" en krijg de waarde voor uw afstandsbediening, bijvoorbeeld "0xE0E08877". Voeg vervolgens een case toe aan de switch-instructie zoals in het volgende codefragment.

geval 0xFF9867:

case 0xE0E08877: Serial.print ("+ Sleutel 0:"); Serieel.println(""); pauze;

Stap 5: Laad het Clock Project Arduino Sketch-programma en test het

Laad het Clock Project Arduino Sketch-programma en test het
Laad het Clock Project Arduino Sketch-programma en test het
Laad het Clock Project Arduino Sketch-programma en test het
Laad het Clock Project Arduino Sketch-programma en test het
Laad het Clock Project Arduino Sketch-programma en test het
Laad het Clock Project Arduino Sketch-programma en test het

Nu alle componenten aan het breadboard zijn toegevoegd, bedraad en getest; het is tijd om het hoofdklokprogramma te laden en uit te voeren. Het klokprogramma haalt de tijd uit de klokmodule, geeft de tijd weer op het LCD-scherm en stelt u in staat de tijd in te stellen met een infraroodafstandsbediening.

Download en voer het klokprogramma van het project uit: clockLcdSet.ino.

Wanneer het programma start, wordt de tijd van de DS3231 weergegeven op het 1602 LCD-scherm. Berichten zijn zichtbaar in de Arduino IDE Tools/Serial Monitor.

+++ Opstelling.

+ LCD-set. + syncCountWithClock, theCounterHours=13 theCounterMinutes=12 theCounterSeconds=13 + Klok ingesteld en gesynchroniseerd met programmavariabelen. + Infraroodontvanger ingeschakeld. ++ Ga naar lus. + clockPulseMinute(), theCounterMinutes= 15 + clockPulseMinute(), theCounterMinutes= 16 + clockPulseMinute(), theCounterMinutes= 17 …

Richt uw afstandsbediening op de ontvanger en druk op de pijl naar rechts. Het jaar wordt weergegeven om in te stellen. Druk een aantal keer op de pijl naar rechts om te zien dat je het jaar, de maand, de dag, het uur, de minuten en de seconden kunt instellen. Ga naar de waarde om een tijdwaarde in te stellen. Gebruik de pijlen omhoog en omlaag om de weergavewaarde in te stellen. Gebruik vervolgens de "OK"-toets om de waarde van de klok in te stellen. Er wordt één waarde per keer ingesteld.

Stap 6: Externe voeding

Externe voeding
Externe voeding

Nu je klok is getest en werkt, kun je hem loskoppelen van je computer en een onafhankelijke stroomvoorziening gebruiken. Voor de eenvoud gebruik ik een 5 volt-muuradapter, die voor ongeveer een dollar kan worden gekocht, en een USB-kabel, nog een dollar. De kabel verbindt de Arduino met de +5V muuradapter. Omdat de Arduino-voedings- en aardingspinnen op het breadboard zijn aangesloten, worden de andere componenten van stroom voorzien.

Vanwege de eenvoud en lage kosten gebruik ik dezelfde combinatie om andere projecten van stroom te voorzien.

Ik hoop dat je succes hebt gehad en genoten hebt van het bouwen van een infraroodgestuurde LCD-klok.

Aanbevolen: