Livskvalitet mätaren (4 / 8 steg)

Steg 4: Firmware



Koden körs i tre allmänna steg: 1) Läs i och dela upp potten ställning, 2) beslutar vad som ska visas, 3) utgång kommandot korrekt till 595.

Steg 1 ingår i det egna användardefinierade funktionen. Först läsa du i den analoga pin ansluten till potentiometern. Detta kommer att resultera i en läsning mellan 0-682 (kom ihåg vi är på 3.3V, inte 5). Nästa vi vill returnera ett värde 0-11, som representerar de 11 segment på vår termometer, till huvudprogrammet. Detta utför du ett heltal på indata med storlek på ett segment, 62 (682/11 = 62). Användning av heltalsdivision, som använder endast heltal, är inte ett misstag, det gör att funktionen returnerar ett heltal utan att ta det extra steget för avrundning resultatet med en annan rad med kod.

En gång du utgång det segment som potten indikerar behöver koden att korrelera det tal till binära sekvensen som tänds upp lämpliga lysdioderna. De decimala värden att konvertera till de korrekt binära strängarna att styra 595 lagras i en matris där deras position i matrisen bekvämt är samma som utdata från potten.

Det sista steget är att driva kommandon till 595's. Utförs är att deaktivera spärr stiftet, förebygga lysdioderna från att ändra medan de nya kommandona skrivs, använda SKIFT kommandot Skicka de binära strängarna genom data stift, som använder klockan stiftet för att skilja bitarna, och slutligen återaktivera spärr stiftet att mata nya data över alla stiften samtidigt.

LED TEST 2 w / 74HC595 //by Bwrussell 2013 / / / * * det här programmet är fri programvara; Du kan vidaredistribuera det och/eller ändra * det enligt villkoren i GNU General Public License som offentliggörs av * Free Software Foundation; antingen version 2 av licensen, eller * (på ditt alternativ) någon senare version. ** Detta program är distribuerat i hopp om att det kommer att vara bra, * men utan garantier; utan att ens underförstådd garanti om * SÄLJBARHET eller lämplighet för ett visst ändamål. Se den * GNU General Public License för mer detaljer. *-//74HC595-Arduino Pin gränssnittsdefinitioner //Pin ansluten till ST_CP av 74HC595 int latchPin = 8; PIN ansluten till SH_CP av 74HC595 int clockPin = 12; PIN ansluten till DS för 74HC595 int dataPin = 11; PIN ansluten till svep stift potten #define potPin A5 //arrays som håller LED staterna för varje pott position, en för varje 595 int ledStatesA [] = {1,2,6,14,30,62,126,254,254,254,254,254}. int ledStatesB [] = {0,0,0,0,0,0,0,0,1,3,7,15}. Variabel Defs int knobPosition; void setup() {//Start följetong för debuging ändamål Serial.begin(9600); //set stift till utgång eftersom de behandlas i huvudloop pinMode (latchPin, produktionen), pinMode (clockPin, produktionen); pinMode (dataPin, produktionen);} void loop() {knobPosition = potRead(); digitalWrite (latchPin, 0); //send data till den andra 595 (8-11) shiftOut (dataPin, clockPin, ledStatesB[knobPosition]); //cosend data till de första 595 (0-7) shiftOut (dataPin, clockPin, ledStatesA[knobPosition]); //return spärr stiftet hög signal chip att det //no längre behöver lyssna för information digitalWrite (latchPin , 1); } makulera shiftOut (int myDataPin, int myClockPin, byte myDataOut) {/ / Detta skiftar 8 bitar ut MSB första, //on stigande kanten av klockan, //clock går på tomgång låg //internal funktion setup int jag = 0; int pinState; pinMode (myClockPin, produktionen), pinMode (myDataPin, produktionen); //clear allt ut bara i fall att //prepare SKIFT register för lite skiftande digitalWrite (myDataPin, 0), digitalWrite (myClockPin, 0); för (jag = 7; jag > = 0; i--) {digitalWrite (myClockPin , 0); om (myDataOut & (1 << jag)) {pinState = 1;} annat {pinState = 0;} //Sets stift till hög eller låg beroende på pinState digitalWrite (myDataPin, pinState); registret skiftar bitarna på upstroken av klocka pin digitalWrite (myClockPin, 1); noll data stift efter skift för att förhindra att blöda genom digitalWrite (myDataPin, 0); } //stop skiftande digitalWrite (myClockPin, 0); } / / Funktion för läsning och segmanting potten ingång int potRead () {int potRaw = 0; //read i rå pot-läge, utjämning över 5 prover för (int jag = 0; jag < 5; i ++) {potRaw = potRaw + analogRead(potPin);} potRaw = potRaw/5; //segment rådata till 12 lika segmants, returnerar ett värde 0-11 int potPosition = potRaw / 60, //Use 60 för 3.3V, 93 för 5V hela potten //send det aktuella segmentet till huvudloop återvända potPosition;}

Källkoden finns i zip-filen (.ino inte skulle ladda upp) och en fil med oformaterad text.

Bara en snabb plugg: I några av de första provning använde jag ganska ny ArduinoDroid app för Android. Det är ganska häftigt för vad det är. Det kan du skriva Arduino kod, med färgkodning och sammanställa, var som helst, gillar på lunchrasten på jobbet. Med en ordentlig USB-kabel kan du också makt och överför till en Arduino ombord. Det finns några andra funktioner som jag inte använt ännu som Bluetooth kontroll och sådant men för en maker på språng eller fältarbete denna app är fenomenal. Jag rekommenderar starkt det särskilt eftersom det är helt gratis (ad stöds) och obegränsad. Om du gillar det kan du betala en nominell arvode till flytta annonser och stödja utvecklingen. Jag vet inte vem utvecklaren är men de rock.

Se Steg
Relaterade Ämnen

Livskvalitet mätaren Mk.2 - smartare och anslutna

För ett tag sedan jag skapade en livskvalitet mätare, baserat på ett skämt där jag jobbar. I huvudsak var det bara en LED version av whiteboard version vi började med. När du arbetar på den första iteration jag visste att det fanns en hel del sätt at...

En fristående Data logga vindmätaren

jag älskar samla in och analysera uppgifter. Jag älskar också bygga elektroniska prylar. Ett år sedan när jag upptäckte de Arduino produkterna, jag omedelbart tänkte, "Jag vill samla in miljödata." Det var en blåsig dag i Portland, OR, så jag be...

Vindmätaren på billiga (lindar hastighet mätaren)

Denna hemlagade konstruktion är lättoch billig, nästan gratis.Αll material använde jag hittade i mitt hus.Nästan alla, eftersom allt jag köpte var behållaren för akvareller.Den grundläggande idén är DC-motor som vridning på grund av vinden producerar...

Vindmätaren...

Hej Karl Instructableshär är min DIY vindmätaren med ett kullager, en cykel hastighetsmätare, aluminiumrör, varmt lim, trä,PVC-rör. Skolprojekt min Son uttryckte det tillsammans. Jag fick alla delar redo.Lätt att göra. Gå nu och göra något. Och Hey H...

En återvunnen regnmätaren för Davis Wizard III

Hur jag lagt till en "Gratis" regnsensor i en eftermiddag.Min Davis 7425 väder guiden III fortfarande hänger på väggen i vardagsrummet, som den har under det senaste decenniet, visar den lokala väder info. Jag fick min station 2003 till salu på...

Antika mätaren Prop bygga

detta är min knytnäve instructable och en del av en större bygga. Jag ville dokumentera dessa steg för referens och för alla att samla idéer.Jag köpte denna mätare med avsikt att bygga en galen vetenskapsman eller Frankensteins lab prop. Som bilden v...

COI - ljus mätaren

Den färdiga produkten använder ljussensorn i Grove Starter Kit Plus för att mäta förändring i ljusintensitet. Den mäter ett startvärde av ljus, och berättar hur ljust eller mörkt det blir bygger på förändring i dess miljö. Detta kan användas opacitet...

Analog stil temperatur mätaren och DataLogger med Intel Edison

I detta instructable du lära dig att ta data från olika sensorer och logga in dem på ett SD-kort, och sedan Visa aktuell temperatur på en servo-driven analog stil mätare. Stort tack till Intel, Instructables och Grove för giveaway!Du behöver:Intellek...

Vindmätaren från CDROM motor och plast påsk ägg halvor

vindmätaren från CDROM motor, och plast påsk ägg halvorJag har en önskan att bygga en eller två små vindkraftverk att ladda bly-syra batterier. För att se om jag har tillräckligt vind att göra det värt, gjorde jag en vindmätare (vind mätanordning) av...

Glukos mätaren fallet och plånbok

Det är allt för lätt att glömma min glukosmätare när jag lämnar huset eller tappar bort den helt och hållet. Genom att skapa ett system för att hysa min glukos mätaren leveranser, mitt kreditkort och ID, och min smarta telefon om behöver vara, jag ha...

Ghost Busters PKE mätaren

Detta är en 3D tryckta PKE MÄTAREN med anpassade elektronik inuti liknande som i filmen; Ghost Busters. Skriva ut detta och använda den för att slutföra din ghost busters stötta uppsättning eller kostym. Att vara en designer, har jag förbättrat desig...

Ställa in en A100LK vindmätaren på en Arduino

Någon tänker installera en vindkraftgenerator, eller ens en hel flock av vindkraftverk, skulle göra klokt att övervaka den föreslagna platsen för minst ett helt år innan spendera ett öre mer på hårdvara. Detta är vad A100LK är utformad för.Det första...

Digital Gauss mätaren

Alla gillar magneter. Spela med den osynliga magiska kraften av permanentmagneter är från alla åldrar.Mixtra med spolar, behöver reläer och många andra magnetiska enheter ibland ett mätverktyg för magnet fältet densitet och Nord- och Sydpolen upptäck...

Pissoar Splash fara mätaren

Här på Instructables HQ på San Franciscos Pier 9 hade Herrarnas toalett ett problem.Viss pier kamrater kvar som fattiga precision pee-ers. Som är fotograferad ovan. (Min kursivering).Lösning: Positiv-grupptryck för korrekt kissar hållning. Pissoar Sp...

Distansera mätaren

avståndsmätare är en billig och effektiv gadget som låter dig mäta avståndet till ett objekt. Enkelt och roligt att bygga! Låt oss bygga den.Steg 1: Steg 1. Komponenter och verktygDe komponenter som anges är utbytbara beroende på dina inställningar.1...

Elektronik tips - mätaren Probe beskyddare

här är ett enkelt tips för att undvika kostsamma misstag när man mäter värden på en påslagen ombord: täcka upp din mätare sonder!Mätaren sonder är Åh så blanka och ledande men de också vilja glida som rör andra delar som du inte vill att röras. Denna...

MÄTAREN står

DUNKA... min mätare föll över igen.Jag arbetade i en butik med sex andra personer.Och varje dag detta hände trots attvissa mätare har en junky tråd stå tillHåll mätaren upprätt. Men försök att ändraskalor eller dra för hårt på leadsoch duns. För tret...

Påskägg vindmätaren (vind hastighet mätare)

lätt hemlagad Vinddataanläggning, detta går ihop snabbt om du har de delar liggandes. Detta är i grunden en mini vindkraftgenerator; spinning motorn producerar en ström som en multimeter läser.Inspirationen till projektet kommer från http://www.other...

Gör det själv vindmätaren för under $30

Någon avsides medveten om vinden generation system och sådant vet hur mycket alla denna utrustning är overpriced. Kommersiellt tillgängliga vindmätare kostar alldeles för mycket. Så är här hur man bygger en för under $30. Förteckning över delar som b...