Arduino basket Pop-a-Shot: Upgrayedd (2 / 5 steg)
Steg 2: Prototyping
Ta ohoilette's koncept, identifierat jag som jag ville ha en basket hoop som hade en synlig poäng visas, kontrolleras av en Arduino och utlöses av en distansera sensor fokuserade på nätet.
Skalning ner individuellt mappad LED segmenten till en quad alfanumerisk display med en IC2 ryggsäck från Adafruit gjorde kodning lättare och såg skarpare än något jag skulle göra från början. Jag ville verkligen att använda en fasad i stället för mikro, men jag kunde inte få min skiss liten nog att passa på fasad. Oavsett, gjort nedskärningar till Micro möjligheten att montering alla in i en halv-stora skärbräda verklighet. Jag gick nästan med ultraljud avstånd sensorn tills jag såg den skarpa digitala sensorn i min reservdelslista. Det är mycket mindre och får grundläggande jobbet av rörelsedetektorn gjort effektivt.
Jag skapade bakbord Schematisk ovan med Fritzing, men här är de anslutningar som jag använde:
- Arduino
- 5V > 5 v järnväg
- GND > GND järnväg
- A0 > avstånd sensor (ut)
- 2/SDA > alpha SDA
- 3/SCL > alpha SCL
- Display Sensor
- UT > adruino A0
- VIN > 5 v järnväg
- GND > GND järnväg
- Alfanumerisk Display
- Vi2C > 5 v järnväg
- VCC > 5 v järnväg
- GND > GND järnväg
- SDA > adrunio 2/SDA
- SCL > adruino 3/SCL
Code-Wise, skapade jag ett heltal kallas poäng som alltid visas på Alfa display. Varje gång avstånd sensorn är trippade, läggs 1 till antalet heltal, därmed uppdatera poäng på displayen. Här är skissen:
inkludera bibliotek
#include
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"
skapa Adafruit alfanumeriska visningsobjekt
Adafruit_AlphaNum4 alpha4 = Adafruit_AlphaNum4();
definiera heltal
int poäng = 0;
void setup() {
Ställ in sensor stift till INPUT
pinMode (A0, indata);
Ange baudvärde
Serial.BEGIN(9600);
Start-Visa
alpha4.BEGIN(0x70);
skriva nollor till alla positioner
alpha4.writeDigitAscii (0, '0');
alpha4.writeDigitAscii (1, '0');
alpha4.writeDigitAscii (2, '0');
alpha4.writeDigitAscii (3, '0');
Display nyskrivna värden
alpha4.writeDisplay();
}
void loop() {
lägga till 1 poäng om sensor spänningen är låg
om (analogRead(A0) < 200) {
Score ++;
skriva poäng för att visa data
alpha4.writeDigitAscii (3, (poäng % 10) + '0');
alpha4.writeDigitAscii (2, (score%100/10) + '0');
alpha4.writeDigitAscii (1, (score%1000/100) + '0');
alpha4.writeDigitAscii (0, (poäng/1000) + '0');
Tryck display data som ska visas
alpha4.writeDisplay();
vänta 1,5 sek att eliminera phantom läsningar
Delay(1500);
}
}
Efter alla som testat ordentligt, lödda jag komponenterna till en halv storlek skärbräda för montering till ryggstöd.