Historien klockan: Arduino LCD w / cap sensorer (5 / 11 steg)
Steg 5: Programmering klockan för nybörjare: Cap sensorer
Kapacitans sensorer är nätta små enheter; du ser dem hela tiden eftersom de används för saker som lampor som ändrar ljusstyrka bara genom beröring. Breakout styrelsen jag använt, från Adafruit, utgångar om trådarna har berörts med I2C och skickar nummer som befogenheter 2 (jag bara lär detta, kanske du är alltför). För de flesta av er kommer detta vara alltför förenklat, men fortfarande förvirrar mig, så jag gjorde en tabell över hur den gemensamma jordbrukspolitiken svarar på beröring.
Anropet för att se om något har berörts är "rörd" och kan kodas som denna:
om (berört == 1) {göra något när den första tråden- och endast de första en - vidrörs}
Till exempel om den 5: e kabeln är berört, ser Arduino"" nummer 16. Vidare antar att 3: e tråden och 6 kablar är rörd samtidigt, Arduino skulle se antalet 36. Varför? eftersom ledningarna bifogas kapacitans sensorn är numrerade från 0-7 och 3: e tråden har nummer 2 ^ 2 = 4 och 6: e tråd har nummer 2 ^ 5 = 32 och summan av de två talen är 4 + 32 = 36.
Fortfarande förvirrad? Prova denna video som en plats att starta... (det hjälpt mig).
Så, med 8 ledningar bifogas kapacitans sensorn, kan vi har massor av olika kombinationer [(2^8)-1 = 255 kombinationer] att göra olika saker. Jag kodade bara klockan för 13 olika saker. De är: något om person 1, något om person 2, något om dem tillsammans, plus timmar, minus timmar, plus minuter, minus minuter, plus dagar, minus dagar, plus månader, minus månader, plus år och minus år.
Om man tittar på Arduino koden visas där jag har den Arduino checken för de olika kombinationer som har betydelse. Varje liten snutt som den här:
annars om (berört == 36)
{k = plusmin();}
efterlyser en liten subrutin att göra något konkret. Exemplet ovan kräver subrutin att ställa in minuterna före vid en minut.