Arduino is zeer populair voor de bouw van hobby projecten en spelletjes, en we hebben eerder gebruikt Arduino om Snake spel, Ping pong spel, Space Race spel, enz. Vandaag zijn we het bouwen van een meer populaire spel met behulp van Arduino- bouwen Buzz draad spel of Steady handspel.
Voor dit project zullen we een Arduino Uno, Buzzer en twee aluminium draden gebruiken. Een 16x2 LCD is ook aangesloten om de gamestatus weer te geven. Beide uiteinden van de doolhofdraad worden verbonden met de digitale pin 2 & 3 van Arduino, en de handgreepdraad wordt verbonden met de aardingspin van Arduino. De digitale pinnen worden gedefinieerd als INPUT_PULLUP pinnen. Dus wanneer de handgreepdraad de doolhofdraad raakt, verandert de status van de digitale pinnen in laag en maakt de zoemer een geluid.
Aan het einde van de doolhofdraad is een diode aangesloten, dus als je langs die diode gaat en de doolhofdraad aanraakt met ronde handgreepdraad, gaat maar één pin (Pin 3) laag. In die toestand wordt een felicitatietekst (Goed gedaan) weergegeven op het LCD-scherm.
Componenten vereist
- Arduino Uno
- Aluminium draad
- 16x2 LCD
- Ik 2 C-module
- Breadboard
- Zoemer
- Diode
Schakelschema
Het schakelschema voor de Arduino Buzz Wire Game wordt hierboven gegeven. SCL- en SDA-pinnen van de I2C-module zijn verbonden met A5- en A4-pinnen van Arduino, terwijl V CC- en GND-pin van de I2C-module zijn verbonden met 5V en GND-pin van Arduino. De positieve rail van Buzzer is verbonden met digitale pin 4 van Arduino en de negatieve rail is verbonden met GND. Knip een aluminiumdraad af en buig het in zigzagvorm. Soldeer een diode aan het ene uiteinde van de draad. Knip vervolgens nog een draad door om een handvat te maken en buig het ene uiteinde in een lus.
Het 16x2 LCD-scherm kan ook worden gekoppeld aan Arduino zonder een I2C-module te gebruiken.
Verbind de D2 & D3-pinnen van Arduino met beide uiteinden van de Zig-Zag-draad en sluit de handgreepdraad aan op de GND-pin van Arduino.
Code Uitleg
De volledige code voor dit Arduino Buzz Wire-spel staat aan het einde van het document.
Start uw code door het bibliotheekbestand voor de LCD-module op te nemen. LiquidCrystal_I2C.h bibliotheek wordt gebruikt voor I2C-communicatie tussen Arduino en LCD-modules.
# omvatten
Definieer daarna de Arduino-pinnen voor de zoemer, het startpunt van de draad en het eindpunt van de draad.
const int startPin = 2; const int endPin = 3; const int zoemer = 4;
Definieer vervolgens twee variabelen start & end_. Deze variabelen worden gebruikt om de aflezingen van draad op te slaan.
int start, end_;
Definieer nu de zoemerpen als uitgang en draadpennen als INPUT_PULLUP . Arduino heeft interne pull-up weerstanden met een waarde van rond de 20k ohm. Deze weerstanden kunnen intern worden aangesloten met INPUT_PULLUP . Het definiëren van een INPUT_PULLUP is functioneel hetzelfde als het aansluiten van een ~ 20k ohm weerstand tussen de pin en + 5V.
pinMode (zoemer, OUTPUT); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
Lees in de lege lus de status van de draadpennen.
start = digitalRead (startPin); end_ = digitalRead (endPin);
Vergelijk nu de aflezingen van draadpennen. Als beide pinnen laag zijn, betekent dit dat je de draad hebt aangeraakt, zodat de zoemer een geluid maakt, en als de startpin van de draad hoog is en de eindpin laag, betekent dit dat je het eindpunt hebt bereikt.
if (start == LOW && end _ == LOW) {digitalWrite (buzzer, HIGH); vertraging (1000); digitalWrite (zoemer, LOW); lcd.setCursor (0,0); lcd.print ("Opnieuw proberen"); Serial.print ("Probeer het opnieuw"); } else if (start == HIGH && end _ == LOW) {lcd.setCursor (0,0); lcd.print ("Goed gedaan"); Serial.print ("Goed gedaan"); }
Het Buzz Wire-spel testen
Nadat je de hardware hebt aangesloten en de gegeven code hebt geüpload, kun je het spel gaan spelen. Dus houd de draad met een cirkel in je hand en probeer de draad met de cirkel helemaal voorbij de diode te krijgen die met zigzagdraad is gesoldeerd zonder dat de ronde draad ergens anders raakt. Als u de draden aanraakt, maakt de zoemer een geluid en wordt op het LCD-scherm " Probeer het opnieuw " weergegeven. En als je het spel voltooit zonder de draad aan te raken, zal het " Goed gedaan " tonen.
Dit is hoe je een Buzz Wire-spel kunt maken met een Arduino. Een werkende video en volledige code worden hieronder gegeven.