Automatiska bevattningssystem med kapacitiv sond och Arduino på billiga (och jag menar det) (2 / 10 steg)
Steg 2: Registeransvarige - schema
Jag bestämde mig att gå med den enklaste NE555 astable med sonden som laddning/urladdning kondensatorn, räkna pulser med en Arduino mini pro och även använda Arduino styrelsen för att utlösa vattning om antalet pulser går över ett visst värde (detta innebär kapacitans sondens – således markens fuktighet – sjunkit under tröskelvärdet).
Den PCB design jag nått är en enda sida med alla komponenter monterade genom hål (dopp mount) – Detta gör det mycket enkelt att montera, endast en lödkolv som behövs. Det PCB spåra mönstret bifogas som PDF-filen i slutet av detta steg (endast tillbaka Cu-lagret). en 4 x layout på en 100 x 100 mm panel (inklusive fästningslinjerna) finns som Gerber filer på sidan projekt på github.
Förklaringar:
- till vänster är en (av de två möjliga) huvudsakliga varianter av NE555 astable kretsar.
- NE555 drivs av Arduino's digital stift 6. Därför NE555 kommer endast att vara aktiv när registeransvarige beslutar det är dags att ta en mätning;
- Q1 transistorn fungerar som ett relä för pumpen, med den senare som laddar i dess kontakt. Dess bas är under befäl av den digitala pin 3 av Arduino handkontrollen. Jag upprepar Varning : Anslut inte direkt till det en pump fått mer än 6W, använda ett relä mellan;
- produktionen av NE555 astable är ansluten till pin digital pin5 av Arduino kontroller; den här är fast (eftersom det är den enda som används av FreqCounter biblioteket jag använder), alla de andra pin val var snarare styrs av spåren på PCB
- trimpot i anslutningen till sonden används för att ställa in frekvensen – jag kommer till detta senare – 4K 7 resistor begränsar bara frekvensen kommer nära max (om du anger ett noll motstånd på trimpot)
- sonden är ansluten med en enda 2-stift rubrikrad; för kraften och pumpen schemat tillåter två olika kontakter – inte avgörande, men eftersom jag var inte säker som en av pin-sidhuvud/kvinna-DuPont eller terminal block skulle passa bättre mitt val av inhägnad
- dioden ansluten till pumpen terminaler – D_flyw1 svänghjul dioden – ifall pumpmotorn skapar spikar i spänning när den stängs av – jag har inte testa för spikar, men 1N4148 är billiga nog och bättre vara säker än ledsen (dioden är hastighet på 1A för icke-återkommande pulser 1ms pulser och 4A för icke-återkommande puls av 1μs, i mitt fall var det nog - men Skyll inte på mig om den strandar för ditt fall)
- kondensatorn parallellt med strömkontakten – filter ut spänningsvariationer i fall registeransvarige drivs av en bullrig linje (inte absolut behövs om du makt kretsen från batterier)
Några kommentarer: NE555 astable använder utdata pin (stift 3 av NE555) för både laddning och urladdning sonden kondensatorn (till skillnad från den vanliga NE555 astable, som använder VCC att ladda kondensatorn och pin 7-ansvarsfrihet pin-för att tömma det). Normalt, är detta val en bit rynka pannan, eftersom impedansen ansluten i det NE555 utdata kan påverka puls längd/frekvensen; men NE555 signalen presenteras för en av Arduino's pin konfigurerad som indata – således en mycket hög impedans, därför förändringen i laddning/urladdning tiden är försumbar. Som PCB utrymmet var till en premie för mig (och jag fortfarande ville DIP-mount komponenter snarare än SMD sådana), var fördelen av att använda ett lägre antal komponenter och förenkla spåren tillräckligt bra för att gå den här vägen.
Nu vad om de andra kontakterna - CONN_SUPPLY1, CONN_SETTINGS1, PPROG0/PGND0, vad är de för? Detaljerade svaret i "Controller - logik", under tiden det korta svaret är: de används i Konfigurera handkontrollen utan behov av en dator.
Varning: kretsen är inte skyddad mot omkastad polaritet - när du ansluter makt, emot den +/-tecken.
Varning: Arduino styrelsen kan passa i normal och inverterade positioner - ordningen på pinout är symmetrisk. Men om du ansluter det omvända, kommer du sannolikt avslutas med en oanvändbar Arduino ombord (jag gjorde det en gång).