Inhoudsopgave:

Voorbeeld van een kluisje met Arduino Matrix-toetsenbord 4x4: 6 stappen
Voorbeeld van een kluisje met Arduino Matrix-toetsenbord 4x4: 6 stappen

Video: Voorbeeld van een kluisje met Arduino Matrix-toetsenbord 4x4: 6 stappen

Video: Voorbeeld van een kluisje met Arduino Matrix-toetsenbord 4x4: 6 stappen
Video: Deel 3 arduino start input sensor humidity temp 2024, November
Anonim
Voorbeeld van een kluisje met Arduino Matrix-toetsenbord 4x4
Voorbeeld van een kluisje met Arduino Matrix-toetsenbord 4x4

2 manieren om een toetsenbord met 16 drukknoppen te beheren met een minimum aan pinnen.

Stap 1: Intro

Ik heb onlangs gewerkt aan een manier om een 4x4 touch-toetsenbordmatrix te beheren die is aangesloten op een Arduino-kloon. De setpoints waren:

-om alleen 4+1 pinnen te gebruiken in plaats van 8 pinnen op de atmega328p

- om een LCD-scherm 4x20 CHAR-link toe te voegen via I2C (2 pinnen)

-om digitale en analoge uitgangen aan te sturen.

Dus veel dingen te controleren met een zonde hoeveelheid I/O.

Stap 2: Dingen om te gebruiken:

Dingen om te gebruiken
Dingen om te gebruiken

Ik kocht een LCD-scherm van 4x20 tekens en een I2C-module-adapter om het scherm te verbinden met SDA (A4) en SCL (A5) pinnen op mijn arduino-kloon.

Ik gebruik de beroemde en inmiddels verouderde MM74C922N: een 8 naar 4 manieren converter die past op het 4x4 matrix toetsenbord.

Ik heb een kloon van de arduino gemaakt op basis van de atmega328p en geprogrammeerd via een HE10-connector (SPI-bus) en een USBasp-kabel.

Stap 3: Schema en het bord:

Schema en het bestuur
Schema en het bestuur
Schema en het bestuur
Schema en het bestuur

Het bord is gemaakt van:

-het LCD-toetsenbord alleen te gebruiken met Arduino IDE, niet mogelijk met LDmicro (Ladderprogrammering)

-het MM74C922N-bord: 16 drukknoppen gecodeerd op 16 binaire waarden op 4 bits DCBA. Als er op een knop wordt gedrukt: de blauwe led gaat branden en er verschijnt een waarde op DCBA (A is de LSB). Wanneer een knop wordt losgelaten: de blauwe led gaat uit en de waarde wordt op nul gezet op DCBA.

-het Arduino atmega238p-kloonbord.

Stap 4: LDmicro gebruiken met ladderprogrammering:

LDmicro gebruiken met ladderprogrammering
LDmicro gebruiken met ladderprogrammering
LDmicro gebruiken met ladderprogrammering
LDmicro gebruiken met ladderprogrammering
LDmicro gebruiken met ladderprogrammering
LDmicro gebruiken met ladderprogrammering

De code die moet worden ingevoerd, bestaat uit 4 waarden uit 16 ingedrukte waarden, dus 16x16x16x16 combinaties.

Zodra je de SFC hebt getekend, moet je deze vertalen naar LADDER met de methode die wordt gegeven in een van mijn

instructies:

www.instructables.com/id/Arduino-tomation-…

Eenmaal getypt, compileer het als xxxx.hex en download het vervolgens met de KHAZAMA-downloader.

Het LCD-scherm kan niet worden geprogrammeerd op LDmicro.

Ik geef LDmicro zip met de schets SERRURE.id erin en de KHAZAMA-downloader.

Stap 5: Arduino IDE 1.8.x gebruiken met Mightycore en SMlib:

Arduino IDE 1.8.x gebruiken met Mightycore en SMlib
Arduino IDE 1.8.x gebruiken met Mightycore en SMlib

Ik vertaal de SFC naar een staatsmachine. Daarna gebruikte ik Arduino IDE met de Mightycore- en SM-bibliotheek erin.

Ik geef een bericht weer zoals: FOUT, WACHTEN, ONTGRENDELEN, status bereikt, waarde van de ingedrukte toets op het LCD-scherm.

Ik geef je de schets en de SM-lib. Voor Mightycore kijk hier eens naar:

www.instructables.com/id/Arduino-18x-Clone…

Stap 6: Tot slot:

Dit zijn twee manieren om het 16-toetsenbord te beheren en het kostte me enkele uren om de goede volgorde te vinden, maar nu werkt het prima. U moet deze stappen respecteren:

-1 detecteert een ingedrukte toets op een stijgende rand van de DA-pin

-2 lees de waarde gegenereerd op DCBA en vergelijk met de goede

Tenzij het zeker niet gaat lukken.

Dankzij alle interessante tutorial over het net.

Aanbevolen: