Crystal Key Lock boxen (5 / 9 steg)
Steg 5: programmering
För detta projekt använde jag en Arduino Uno ladda upp koden till en Atmega328. Detta avsnitt kommer att vara mycket tunga med kod, men jag ska påpeka de viktiga saker som behövs för att ändra för varje enskilt projekt. Jag använder stift och variabler som följer
A0 = fotomotstånd-definieras som lightPin
A5 = Neopixels
D9 = Servo
tröskel = värdet av laser störning. Hitta värdet ligger på utan störningar, sedan gå om 10 heltal ner, bara för att vara säker. När den känner av något under detta värde, kommer att koden kontrollera om det är nyckeln eller inte.
UpperKeyThreshold och LowerKeyThreshold = övre och nedre gränserna för nyckeln. Jag föredrar denna metod eftersom om du använder ett organiskt material, såsom en kristall, du kommer att få en hel del föroreningar som gör placeringen av kristallen mycket svårare att arbeta med. Detta sätt kan du testa nyckeln för att hitta en rad som du är bekväm med. Kom ihåg, ju mindre intervall, desto svårare blir det att låsa upp boxen med ett specifikt objekt, och ju större utbud, desto lättare blir det att använda andra objekt för att komma in i rutan.
Det första du vill göra det test du vill hitta särskilda värden. Jag rekommenderar programmet Arduino leveranser, eftersom den är snabb, enkel och effektiv att använda. En gång upp, ansluta rutan som visas i diagram på webbplatsen. När den är ansluten och lasern får makt, kan du testa sedan dina variabler. Detta sätt kan du testa den position du vill ha din nyckel till vara i, och hitta värden som matchar. När du hittar dem kan du gå vidare till själva programmet.
I stället för blast guide med min kod, ska jag bifoga det till detta steg som en fil, som du kan hämta och ändra som du tycker passar.
Du måste hämta två bibliotek: Adafruit Neopixel bibliotek, och Adafruit TiCoServo bibliotek.
Du kan inte använda vanliga servo biblioteket i samband med neopixel biblioteket på grund av några dataström konflikter mellan två; Det är därför Adafruit gjorde ett servo controller bibliotek som skulle arbeta med den. I artikeln som ingår är en snygg läsa på resonemanget bakom det, så det finns information om det i länken om du är intresserad.