Manövrerad 1/2" PVC kulventil (5 / 7 steg)
Steg 5: Control System
·
Blockdiagram
När det gäller blockdiagram, detta projekt var ursprungligen conceptualized som ett flöte switch kontrollerade bollen ventil manöverdon används för att dränera och låta fylla en sakta fylla reservoaren liknar många projekt i mitt labb. Arduino tar emot insignaler från tre nivåvakter, granskar deras kombination, avgör det krävs tillståndet av ventilen, och roterar servo och visar tillståndet ventil på LCD-skärmen. Hela styrkrets drivs av en extern 6.0VDC NiMH-batteri.
· Ledningar
Läs igenom Fritzing diagrammet och bilderna från ledningarna. För att sammanfatta ledningarna, en 6.0VDC NiMH batteri (företrädd av AA-batteri i diagrammet) driver den Arduino, servo och LCD uppvisning via en av power rälsen på bröd ombord. Arduino Vin och marken stift är kopplad till makt och marken rails respektive (sammanblandning av dessa kommer att förstöra Arduino). Arduino är också kopplad till: 3 flyta växlar (företrädd av växlarna tilt i diagrammet) på digital (ingång) pins 2, 3 och 4. signal binda av servo på PWM pin 9. och till SDA och SCL stift av LCD uppvisning från en SDA och SCL stift.
Jag borrade åtta små hål i locket på min låda och limmade varm vissa hona-hona jumper där i så att användaren kan byta ut nivåvakter utan demontering något. Jag hade löda några manliga jumper tips till min nivåvakter att ansluta och koppla bort dem i rutan en Nafsa. I denna iteration ville jag hålla batteriet externa för uppladdning och säkerhet. Det hålls helt enkelt med kardborre till en av konsolerna. Det driver systemet liknar nivåvakter, genom att koppla in och externa jumper limmade i inhägnad locket.
· Koden
För att sammanfatta Arduino koden, den består av en huvudsaklig skript och kräver endast tre enkla funktioner. Huvudsakliga skriptet: import bibliotek wire.h, LiquidCrystal_I2C.h och servo.h och instansierar deras objekt; definierar stift 2, 3 och 4 som digital ingång stift den meningen statligt av nivåvakter; definierar Pin 9 som en PWM utdata pin används av servo objektet. definierar variabler för att hålla nivåvakter, servo objekt min. och max PWM frekvenser (0 och 1023) ska motsvara de öppna och slutna positionerna, en kartläggning variabel som, bör serven som den enda variabeln du behöver ändra för att få rätt grad av tur för din servo och några teckensträngar för LCD-skärmen visar; initierar huvudloop som uppmanar tre funktionerna levelSense, servoPosition och displayThis och sedan förseningar för 100ms. levelSense attribut bara tillståndet för nivåvakter av digital läsa till deras respektive heltal variabler. servoPosition analog skriver de mappade "öppna" frekvens med servo objektet till pin 9 när alla tre nivåvakter lyfts och uppsättningar variabeln LCD röding till en sträng "öppna". När nivåvakter är alla tappade, Pin 9 analog skriver mappade "stängd" frekvensen till servo och variabeln LCD displayen ändras till "Stängt." Om den mellersta stiftet (3) är någonsin synkroniserad med höga (4) och låg (2) stift ventilen "stängs" och LCD variabeln ändras till "Fel." DiplayThis är slutligen en två fodrar fungerar som som använder LCD-skärmen visar objekt att visa den aktuella char variabeln på den nedre raden i LCD-displayen.