Arduino: Input styr produktionen (3 / 4 steg)

Steg 3: Skriva koden

Med hjälp av Arduino IDE skapa en ny skiss.

Innan funktionen setup(), deklarera variabler för den analoga pin ansluten till fotomotstånd och digital pin ansluten till LED.

Fotomotstånd Pin
int analogPin = 0;
LED stift
int ledPin = 9;

För denna firmware behöver du inte sätta något i installationsmetoden. Normalt skulle du deklarera digital PIN-koden som utdata med funktionen pinMode(), men vi kommer att använda funktionen analogWrite() som inte kräver PIN-koden ska deklareras som utgång.

Funktionen loop() kommer du börja med behandlingen i ljusnivån från fotomotstånd använder samma kod från den sista lektionen.

void loop() {
sätta din huvudsakliga kod här, för att köra flera gånger:
läsa raw-data kommer in på analoga pin 0:
int lightLevel = analogRead(analogPin);
}

Härnäst kommer du konvertera inkommande ljusnivån till rätt intervall för LED. För att göra detta använder du två nya funktioner - map() och constrain().

Funktionen karta har fem indataargument - värdet, ett lågt värde och ett högt värde från det nuvarande utbudet, och ett lågt värde och ett högt värde för målintervallet.

int val = karta (värde, fromLow, fromHigh, toLow, laboratoriumtohighkobolt);

Allt detta gör är mappa ett värde från en rad till motsvarande värde i ett annat område. Till exempel karta (25, 50, 100, 0, 0) skulle återvända 50 (50 är motsvarande inom 0-100 utbud till 25 inom intervallet 0-50). I den här lektionen ska du mappa lightLevel (en 0-1023 utbud) till ett PWM (0-255). Ett annat sätt att accompishing samma mål i detta fall skulle vara att dela upp det lightLevel värdet av 4 (0-255 är den fjärde av 0-1023), men om du gjorde det, du skulle inte få lära sig funktionen map(). Dessutom, eftersom du inte vill att din nattlampan vara på när det finns lite ljus (t.ex. svagt ljus) kommer du att ändra intervallet lightLevel. Till exempel i mitt kontor lightLevel värdet är omkring 340 när lamporna är tända (det är inte ett mycket ljust kontor). Jag skulle vilja behandla detta som om det finns tillräckligt med ljus för att lampan inte tändas, så jag inte bränner LED när lamporna är tända. Det gör karta jag lightLevel spänna som 350-1023.

void loop() {
sätta din huvudsakliga kod här, för att köra flera gånger:
läsa raw-data kommer in på analoga pin 0:
int lightLevel = analogRead(analogPin);
mappa om värdet från det analoga stiftet till en mindre yta
Experimentera med den högra fromLow baserat på din miljö
int ljusstyrka = karta (lightLevel, 350, 1023, 0, 255);
}

Kommer ni att experimentera med detta för att hitta det bästa sortiment att använda (kom ihåg, seriell bildskärmen från föregående lektion kan du hitta raw värdet kommer från fotomotstånd).

Mappning av lightLevel spänna med ett lågt värde som är högre än ett värde som du kan mata in kan resultera i ett negativt tal (t.ex. i mitt exempel, lightLevel kan vara 340 trots att jag identifierat den lägre delen av intervallet på 350). Du kan använda funktionen constrain() för att skydda mot ställa ljusstyrka till ett negativt tal.

Funktionen constrain() tar i tre indataargument - värdet, ett lågt värde och ett högt värde.

int val = begränsa (värde, lowValue, highValue);

Om värdet är mellan lowValue och highValue, kommer sedan värdet att returneras. Om värdet är lägre kommer lowValue, då lowValue att returneras. Om värdet är högre än highValue, sedan returneras highValue.

Med funktionen constrain() kan du se till att du inte ställa in ljusstyrka till ett dåligt värde. Nu när du har en bra ljusstyrka funktionen analogWrite() kan du ange PWM för LED stift. Ljusstyrka värdet 0 är en 0% intermittens (off) och en ljusstyrka på 127 är en 50% intermittens, etc.

void loop() {
sätta din huvudsakliga kod här, för att köra flera gånger:
läsa raw-data kommer in på analoga pin 0:
int lightLevel = analogRead(analogPin);
mappa om värdet från det analoga stiftet till en mindre yta
Experimentera med den högra fromLow baserat på din miljö
int ljusstyrka = karta (lightLevel, 350, 1023, 0, 255);
använda begränsa för att undvika negativa tal och/eller nummer ovanför hög spänna
ljusstyrka = begränsa (ljusstyrka, 0, 255);
använda analogWrite för att skicka PWM data (en fyrkantsvåg)
analogWrite (ledPin, ljusstyrka);
}

Se Steg
Relaterade Ämnen

Hur man gör tangentbordet lösenord använder arduino att styra servo och ledde

I detta projekt jag kommer att berätta hur man gör tangentbordet lösenord genom att använda arduino och styra servo och ledde.först för att göra enkel knappsats med 4 knappen besök ellerför alla projekt och andra projekt gå till http://arduinoo.tk/Pr...

Arduino nano styra en dental vakuum motor genom att kontrollera flytande avfall nivå

/ *////////////// DESCRIPTION ///////////////////////////////////////////////////////////Detta är ett program för styra en dental vakuum motor.Motorn behöver en 24 volts signal (via ett relä ansluten till arduino's digital utgång) att slå.När avstäng...

Med MikroTik Router styrelsen 433 & Arduino att styra två lysdioder

I denna tutorial kommer jag förklara hur man styr två lysdioder med MikroTik router styrelsen och Arduino.MikroTik 433 är en router styrelsen baserat på Linux-kärnan, det innehåller 3 Ethernetport och 3 mini PCI-port som används för att ansluta trådl...

Puzzlebox bana: Med en Arduino att styra en infraröd helikopter

i detta Instructable kommer vi att förklara hur IR signaler används av en fjärrkontroll att styra en leksak eller enhet, sedan Visa hur en enkel krets kan läggas till en Arduino att fungera samma enhet genom fri, öppen källkod.Detta dokument ingår i...

Arduino Thumbstick styra datorn markören

Detta är ett test jag gjorde för att förbättra min programmering med c + +/ c# och bearbetning av java-språket.Detta projekt handlar om att styra markören dator med joystick som ansluten till Arduino.Även om det ännu inte helt komplett men det kommer...

Netflix knappen! Arduino IR styra Xbox 360

Detta är en Arduino som skickar IR-signaler till vända på Netflix genom att trycka på en knapp. Det är ett bra exempel på att använda IR kontroll en TV, stereo, Xbox 360 eller något! Detta går också in i djupet om att använda RAW IR-koder, som använd...

En guide för att styra saker med varierande input (via arduino)

hjärtat i detta projekt är en) koppla upp en sensor till arduino analog ingång och b) programmering med if... else-sats.Detta projekt visar en dator kylsystemet för att behålla viss temperatur inom ett dator torn.Jag använde följande produkter och sj...

Styr någon krets med en TV-fjärrkontroll (och en Arduino)

De flesta av knapparna på fjärrkontrollen används aldrig. Så varför inte använda dem för att styra apparater och annan elektronik runt ditt hus. I detta projekt ska jag visa dig hur du använder en Arduino för att avkoda signalen från fjärrkontrollen...

Arduino LCD-analog/digital input monitor.

Detta är hur man gör en arduino powered LCD-indata/utdata skärmSteg 1: material.Detta är de saker som du behöver.Arduino UNO.DFRobot 1602 LCD knappsatsen sköld (det behöver inte vara denna exakta typ, du måste bara veta pin-ute).Dator (med arduino ID...

Arduino: Styra Servo med PS2 controller (Program med Visuino)

I detta Instructable kommer du lära dig att programmera Arduino att styra servomotor från en Play Station 2 controller med hjälp av Visuino - en enkel att använda grafiska utvecklingsmiljön för Arduino.Observera att anteckningen på några av bilderna...

Arduino animatörerna-gör din awesome kostymer mer awesome!

Här gör du att lägga till åtgärder, ljus och ljud i din favorit Halloween projekt med öppen källkod Arduino mikrokontroller. Arduino är lätt att lära sig att använda och det öppnar upp en helt ny värld för kostym byggare och varelse skaparna. Om du v...

Digital potentiometrar Arduino Shield

Den Digitala potentiometrar Arduino Shield har testats för kompatibilitet med Arduino Duemilanove Diecimilaoch Arduino UNO R1/R2Denna sköld är baserad på enheten AD5206 från Analoga enheter.På Internet kan vi hitta några mycket grundläggande tillämpn...

Arduino Laser gravör

jag började detta projekt eftersom jag ville göra något som hade mekaniska, elektriska och programvarukomponenter. Efter att ha tittat på Instructables, tänkte jag att en Arduino baserade laser gravör skulle vara en intressant maskin för att göra, oc...

Nybörjare Arduino

Arduino är en fickformat dator (också kallade en "microcontroller") som du kan programmera och använda att kontrollera kretsar. Det interagerar med utanför ordet genom sensorer, lysdioder, motorer, högtalare... även internet. Detta gör det en fl...

Raspberry Pi - Arduino anslutning

The Pi är en fin liten dator ombord, om inte nästan lika bra somArduinoen när det gäller I/O kapacitet. Den vackert konstrueradGertboard är en plug-in add-on som prydligt övervinner denna bristgenom att ge Pi tillgång till en ATMega328, men det är en...

Quiz-O-Tron 3000: Arduino frågesport tävlande lockout system

Om du har någonsin sett en TV-quiz show du har förmodligen sett tävlande försöker trycka på en knapp för att vinna en chans att svara på en fråga. Den tävlande snabb reaktionstid resulterar i någon form av ljus och/eller ljud som anger seger. Detta ä...

D.D.Tap - interaktiva spel plattform med bearbetning, Arduino och Twitter

D.D.Tap är ett spel som kan spelas med hjälp av sensorer kopplade till Arduino och gränssnitt till spelet producerade med bearbetning. Det är en enkel dance dance revolution som spel som ackumuleras punkt när spelaren aktiverar sensorerna eller tryck...

Mellanliggande Arduino: Ingångar och utgångar

Fortsätter från min Intro till Arduino inlägg, går detta Instructable över vissa något mer avancerade ämnen med Arduino, särskilt om att styra och hantera många ingångar och utgångar. Nästa klass omfattar hur du ansluter den Arduino ingångar och utgå...

Arduino fingeravtryck låsa

det är en kort video för denna Arduino fingeravtryck låsa här: http://v.youku.com/v_show/id_XNjIxNzQyNzY4.htmlJag bor i en liten lägenhet i Shenzhen med min fru och barn, 5 månader gammal. Ibland behöver jag att gå ut, till exempel, att gå ner för at...