Inhoudsopgave:

Arduino draadloos combinatieslot met NRF24L01 en 4-cijferig 7-segments display - Ajarnpa
Arduino draadloos combinatieslot met NRF24L01 en 4-cijferig 7-segments display - Ajarnpa

Video: Arduino draadloos combinatieslot met NRF24L01 en 4-cijferig 7-segments display - Ajarnpa

Video: Arduino draadloos combinatieslot met NRF24L01 en 4-cijferig 7-segments display - Ajarnpa
Video: Подключение и настройка nRF24L01 к Arduino (модуль беспроводной связи) 2024, November
Anonim
Arduino draadloos combinatieslot met NRF24L01 en 4-cijferig 7-segments display
Arduino draadloos combinatieslot met NRF24L01 en 4-cijferig 7-segments display

Dit project begon zijn leven als een oefening om iets te doen met een 4-cijferig 7-segments display.

Wat ik bedacht was de mogelijkheid om een 4-cijferig combinatienummer in te voeren, maar toen het eenmaal klaar was, was het behoorlijk saai. Ik heb het gebouwd met behulp van een Arduino UNO. Het werkte, maar deed niets anders.

Ik had toen het idee dat het een knop moest hebben om het geselecteerde nummer te accepteren, en misschien een andere knop om de combinatie te wijzigen, en misschien een LED om de staat waarin het zich op elk moment bevond te laten zien. Hoewel het klonk als een plan, betekende het ook dat ik geen pinnen meer zou hebben op de UNO. Er is misschien een manier om dit apparaat te multiplexen, maar ik weet niet zeker waar ik moet beginnen, dus pakte ik de Arduino Mega.

Nu ik een groter bord gebruikte en meer pinnen had om mee te spelen, besloot ik ook wifi-mogelijkheden toe te voegen om te communiceren met een andere Arduino die eigenlijk een soort schakelaar zou besturen.

Stap 1: Vereisten en onderdelenlijst

Vereisten en onderdelenlijst
Vereisten en onderdelenlijst

Na daar over nagedacht te hebben, heb ik nu een lijst met vereisten:

  • Om een 4-cijferige combinatie in te kunnen voeren.
  • Om te beginnen met een standaard hardcoded combinatie.
  • Om de combinatie te kunnen wijzigen en de nieuwe combinatie op te slaan in de Arduino's EEPROM.
  • Geef de status van het slot weer met een rode LED voor vergrendeld en een groene LED voor open.
  • Geef de status weer wanneer de combinatie werd gewijzigd met een blauwe LED.
  • Wanneer de status ontgrendeld is, blijft u een bepaalde tijd staan en keert u terug naar de vergrendelde status.
  • Verzend de vergrendelde/ontgrendelde staat naar een andere Arduino.
  • Geef dezelfde status weer met rode en groene LED's op de ontvangende Arduino.
  • Gebruik voor demonstratiedoeleinden een servo om te fungeren als een vergrendelingsmechanisme op basis van de ontvangen status.

Van de eisen kan ik nu een onderdelenlijst maken:

De zender:

  • Arduino Mega.
  • Broodplank.
  • 4-cijferig 7-segments display.
  • 2 X momentschakelaars, met doppen.
  • 1 X RGB-LED.
  • 9X 220ohm weerstanden. 8 voor het display en 1 voor de RGB LED.
  • 2 X 10kohm weerstanden. Trek weerstanden naar beneden voor de 2 knoppen. (Ik heb eigenlijk 9.1kohm gebruikt omdat ik dat had)
  • 1 X 10k potentiometer.
  • 1 X NRF24L01
  • [optioneel] 1 X YL-105 breakout-bord voor de NRF24L01. Dit zorgt voor 5v-aansluiting en eenvoudigere bedrading. Doorverbindingsdraden

De ontvanger:

  • Arduino UNO.
  • Broodplank.
  • 1 X RGB-LED.
  • 1X 220ohm weerstand. Voor de led.
  • 1X-servo. Ik heb een SG90 alleen voor demonstratiedoeleinden gebruikt.
  • 1 X NRF24L01
  • optioneel] 1 X YL-105 breakout-bord voor de NRF24L01. Dit zorgt voor 5v-aansluiting en eenvoudigere bedrading.
  • Doorverbindingsdraden

Stap 2: Het scherm

Het scherm
Het scherm
Het scherm
Het scherm

Ik heb een 4-cijferig 7-segments display gebruikt

Getest met SMA420564 en SM420562K (pinnen zijn hetzelfde)

Pinnen 1 en 12 zijn gemerkt.

Top-down pin-opstelling 12, 11, 10, 9, 8, 7 1, 2, 3, 4, 5, 6

Pinnen 12, 9, 8, 6 zetten de cijfers 1 t/m 4 van links naar rechts aan of uit

Stap 3: Bedrading van de Arduino Mega:

Bedrading van de Arduino Mega
Bedrading van de Arduino Mega

Weergave naar Arduino pin-indeling

  • 1 naar pin 6 via 220ohm weerstand (E)
  • 2 naar pin 5 via 220ohm weerstand (D)
  • 3 naar pin 9 via 220ohm weerstand (DP) hier niet gebruikt
  • 4 naar pin 4 via 220ohm weerstand (C)
  • 5 naar pin 8 via 220ohm weerstand (G)
  • 6 naar pin 33 (cijfer 4)
  • 7 naar pin 3 via 220ohm weerstand (B)
  • 8 naar pin 32 (cijfer 3)
  • 9 naar pin 31 (cijfer 2)
  • 10 naar pin 7 via 220ohm weerstand (F)
  • 11 naar pin 2 via 220ohm weerstand (A)
  • 12 naar pin 30 (cijfer 1)

10kohm-potentiometer om het nummer op het weergegeven cijfer te wijzigen

  • Buitenste pin naar 5v
  • Middelste pin naar A0
  • Andere buitenste pin naar GND

Nummertoets accepteren

  • Om 36 te pinnen.
  • En pin 36 via een 10kohm pull-down weerstand naar GND

Knop voor combinatienummer wijzigen

  • Op pin 37.
  • En pin 37 via een 10kohm pull-down weerstand naar GND

RGB-LED (gemeenschappelijke kathode)

  • Kathode naar GND via 220ohm weerstand
  • Rood naar pin 40
  • Groen naar pin 41
  • Blauw naar pin 42

NRF24L01 met breakout-bord:

  • MISO naar pin 50 (verplicht via speciale pin)
  • MOSI naar pin 51 (verplicht via speciale pin)
  • SCK naar pin 52 (verplicht via speciale pin)
  • CE naar pin 44 (optioneel pinnummer maar gedefinieerd in de schets)
  • CSN naar pin 45 (optioneel pinnummer maar gedefinieerd in de schets)
  • Vcc naar Arduino 5v (of 3.3v als het breakout-bord niet wordt gebruikt)
  • GND naar Arduino GND

Stap 4: Bedrading van de Arduino UNO:

Bedrading van de Arduino UNO
Bedrading van de Arduino UNO

RGB-LED (gemeenschappelijke kathode)

  • Kathode naar GND via 220ohm weerstand
  • Rood naar pin 2 Groen naar pin 3
  • Blauw (hier niet gebruikt)

Servo:

  • Rood naar Arduino 5v of aparte voeding indien gebruikt
  • Bruin naar Arduino GND en aparte voeding indien gebruikt
  • Oranje naar pin 6

NRF24L01 met breakout-bord:

MISO naar pin 12 (verplicht via speciale pin)

MOSI naar pin 11 (verplicht via speciale pin)

SCK naar pin 13 (verplicht via speciale pin)

CE naar pin 7 (optioneel pinnummer maar gedefinieerd in de schets)

CSN naar pin 8 (optioneel pinnummer maar gedefinieerd in de schets)

Vcc naar Arduino 5v (of 3.3v als het breakout-bord niet wordt gebruikt)

GND naar Arduino GND

Stap 5: Hoe het werkt

Image
Image
Hoe het werkt
Hoe het werkt
Hoe het werkt
Hoe het werkt
Hoe het werkt
Hoe het werkt

Zodra beide breadboards voltooid zijn en de juiste schets erop is geüpload, kunnen we deze nu testen.

Met stroom op beide borden.

De rode LED's moeten op beide borden branden.

Op het display verschijnt een nummer in het eerste cijfer. Dit aantal is afhankelijk van waar de potentiometer momenteel is ingesteld.

Draai aan de potentiometer om het gewenste getal te krijgen.

Zodra het nummer is gevonden, drukt u op de knop accepteren. In mijn geval is het die links van de potentiometer.

Doe hetzelfde voor de andere drie nummers.

Als de ingevoerde combinatie correct is, wordt het woord OPEn weergegeven, gaat de groene LED op beide borden branden en draait de servo 180 graden.

Het display wordt blanco en de groene LED blijft ongeveer 5 seconden langer branden.

Zodra de ontgrendeltijd voorbij is, worden beide LED's rood en draait de servo 180 graden terug naar zijn start.

Als de ingevoerde combinatie niet correct is, wordt het woord OOPS weergegeven en blijven de rode LED's branden.

Er is een hard gecodeerde standaardcombinatie in de schets van 1 1 1 1.

Om de combinatie te wijzigen, moet u eerst de juiste combinatie invoeren.

Zodra het woord OPEn verdwijnt, heb je ongeveer 5 seconden om op de andere knop te drukken.

Zodra u de volgorde voor het wijzigen van de combinatie invoert, wordt de LED van het moederbord blauw, terwijl de andere groen blijft en daarom open is.

Voer een nieuwe combinatie in op dezelfde manier als voorheen.

Zodra de nieuwe combinatie is geaccepteerd (bij de laatste druk op de knop) wordt deze opgeslagen in de EEPROM.

Beide Arduino's gaan nu in de vergrendelde modus.

Voer je nieuwe combinatie in en deze wordt ontgrendeld zoals verwacht.

Zodra een combinatie is gewijzigd en in de EEPROM is opgeslagen, wordt de hard gecodeerde standaardwaarde van 1 1 1 1 genegeerd.

Stap 6: Alles klaar

Ik bouwde dit met behulp van de basis NRF24L01 met ingebouwde antenne en beheerde een goede communicatie van ongeveer 15 voet door één muur.

Omdat het Arduino Mega breadboard een beetje druk was met draden in de weg, heb ik op sommige plaatsen directe jumpers gebruikt. Dit, met het feit dat er veel op één breadboard staat, maakt het moeilijk om de foto's te volgen.

Ik denk echter dat ik alles pin voor pin heb uitgelegd en zelfs als je een beginner bent, zou je dit kleine project moeten kunnen bouwen door slechts één draad of pin tegelijk te nemen.

Beide schetsen zijn volledig becommentarieerd om het lezen te vergemakkelijken en kunnen hier worden gedownload.

De schets voor de Arduino Mega is vrij groot, ongeveer 400 regels, maar is opgedeeld in hanteerbare brokken en moet dus gemakkelijk te volgen zijn.

Aanbevolen: