Distansera mätaren (4 / 5 steg)

Steg 4: Steg 4. Programming mätaren



Följande är en kod som notering på en Arduino IDE
/*
** Skapad av: Charles Muchene
**
**
** Datum: 3 oktober 2013
**
** Tid: 1412hrs
**
** Avstånd mätaren kod
** Systemet mäter avståndet
** med HC-SR04 ultrasonic sensor
** och översätter den till en serie
** av tända lysdioder
**
** Ha kul och justera den!
*/
/ * Bibliotek för melodisk tomterna
** Det beskriver frekvenserna som ska produceras * /
#include "pitches.h"

CONST int triggerPin = 10; trigger pin (grön)
CONST int echoPin = 9; ECHO pin (orange)
CONST int tonePin = 8; tonar pin (whilte-blå)
CONST int serialDataPin = 7. seriella data stift (orange)
CONST int registerClockPin = 6; Registrera dig klockan pin (brun)
CONST int shiftRegisterClockPin = 5; Shift registrera klocka
CONST int numOfRegisters = 16. antal register

CONST boolean registrerar [numOfRegisters]; Registrera dig matris
int litLEDs = 0; ledde pin counter
int utbud = 100; intervallvärde
int avstånd; avståndet

CONST int count = utbud / numOfRegisters; (meter per LED)

starta upp melodin
int melodi [] = {NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4, NOTE_DS8, NOTE_DS8};

kritisk distans melodi
int criticalMelody [] = {NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8};

Observera varaktigheter: 4 = fjärdedelsnot, 8 = åttondelen noterar, etc.
int noteDurations [] = {4, 8, 8, 4, 4, 4, 4, 4, 4, 2};
int criticalNoteDurations [] = {4, 4, 4, 4};

void setup()
{
/ * Pin-konfigurationer * /
pinMode (triggerPin, produktionen);
pinMode (echoPin, ingång);
pinMode (serialDataPin, produktionen);
pinMode (registerClockPin, produktionen);
pinMode (shiftRegisterClockPin, produktionen);

/ * Ljus 'em up * /
lightEmUp();

/ * Starta melodi * /
playMelody();

/ * Stänga av alla lysdioder * /
clearRegisters();

} / / setup

/ * Få avstånd från HC-SR04 * /
int getDistance()
{
digitalWrite (triggerPin, låg);
delayMicroseconds(2);
/ * Skicka trigger signal * /
digitalWrite (triggerPin, hög);
delayMicroseconds(10);
digitalWrite (triggerPin, låg);

/ * returnera avståndet i centimeter * /
Return (pulseIn (echoPin, hög) / 2) / 29,1;
} //get avstånd

Tänd alla lysdioder
void lightEmUp()
{
för (int pin = 0; pin < numOfRegisters; pin ++)
register [pin] = hög;

writeRegisters();
} //light 'em up

alla register stift inställd på låg
void clearRegisters()
{
för (int jag = numOfRegisters - 1; i > = 0; i--)
register [i] = låg;
writeRegisters();
} //clear registrerar
/ * Skriva registret värden och lagra dem * /
void writeRegisters()
{
/ * Med register klocka pin lågt inställd
** lagring registrets innehåll
** inte ändras av de förändrade värdena som SKIFT register
**/
digitalWrite (registerClockPin, låg);

/ * Loopa igenom alla register * /
för (int jag = numOfRegisters - 1; i > = 0; i--)
{
digitalWrite (shiftRegisterClockPin, låg);
int val = register [i];
digitalWrite (serialDataPin, val);
digitalWrite (shiftRegisterClockPin, hög);
} / / loopar alla register

/ * Detta signalera överlåtelser innehållet i
** med övergången registreras till lagring register
*/
digitalWrite (registerClockPin, hög);
} //write registrerar

ställa in en individuell pin högt eller lågt
void setRegisterPin (heltal index, int värde)
{
register [index] = värde;
} //set register pin värde

/ * Play starta uMelody * /
void playMelody()
{
för (int thisNote = 0; thisNote < 10; thisNote ++)
{
/ * Att beräkna noterar varaktighet,
ta en sekund dividerat med Noteringstyp
/ * e.g. fjärdedelsnot = 1000 / 4,
** åttondelen noterar = 1000/8, etc * /
int noteDuration = 1000/noteDurations [thisNote];
tonar (tonePin, melody [thisNote], noteDuration);

/ * För att skilja anteckningar, ange en minsta tid mellan dem.
** Notera varaktighet + 30% verkar fungera bra * /
int pauseBetweenNotes = noteDuration * 1,30;
Delay(pauseBetweenNotes);
noTone(8);
} / / alla anteckningar
} //play starta upp melodin

/ * Kritiska melodi * /
void playCriticalMelody()
{
för (int thisNote = 0; thisNote < 4; thisNote ++)
{
int noteDuration = 1000/noteDurations [thisNote];

tonar (tonePin, criticalMelody [thisNote], noteDuration);

/ * För att skilja anteckningar, ange en minsta tid mellan dem.
** Notera varaktighet + 30% verkar fungera väl * /
int pauseBetweenNotes = noteDuration * 1,30;

Delay(pauseBetweenNotes);

noTone(8);

} / / loopa alla anteckningar

} //play kritiska melodi

void loop()
{
/ * Få avstånd * /
avståndet = getDistance();

/ * Beräkna ljusdioderna till ljus * /
om (utbud > = avstånd)
litLEDs = (range - avstånd) / räkna;
annat
litLEDs = -1;

/ * Tända lysdioder beroende på avståndet beräknas * /
för (int pin = 0; pin < numOfRegisters; pin ++)
{
om (pin < = litLEDs)
setRegisterPin (pin, hög);
annat
setRegisterPin (pin, låg);
} //for loop

writeRegisters(); verkställer ändringar

/ * Spela kritisk närhet melodi * /
om (litLEDs > = 13)
playCriticalMelody();

} //loop
/*************************************************
* "pitches.h" definition
*
* Offentliga konstanter
* Konstanterna som representerar pitch frekvenserna
* för en vanlig konsert respektive noter
* instrument tuning som ett Piano
*************************************************/
#define NOTE_B0 31
#define NOTE_C1 33
#define NOTE_CS1 35
#define NOTE_D1 37
#define NOTE_DS1 39
#define NOTE_E1 41
#define NOTE_F1 44
#define NOTE_FS1 46
#define NOTE_G1 49
#define NOTE_GS1 52
#define NOTE_A1 55
#define NOTE_AS1 58
#define NOTE_B1 62
#define NOTE_C2 65
#define NOTE_CS2 69
#define NOTE_D2 73
#define NOTE_DS2 78
#define NOTE_E2 82
#define NOTE_F2 87
#define NOTE_FS2 93
#define NOTE_G2 98
#define NOTE_GS2 104
#define NOTE_A2 110
#define NOTE_AS2 117
#define NOTE_B2 123
#define NOTE_C3 131
#define NOTE_CS3 139
#define NOTE_D3 147
#define NOTE_DS3 156
#define NOTE_E3 165
#define NOTE_F3 175
#define NOTE_FS3 185
#define NOTE_G3 196
#define NOTE_GS3 208
#define NOTE_A3 220
#define NOTE_AS3 233
#define NOTE_B3 247
#define NOTE_C4 262
#define NOTE_CS4 277
#define NOTE_D4 294
#define NOTE_DS4 311
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_FS4 370
#define NOTE_G4 392
#define NOTE_GS4 415
#define NOTE_A4 440
#define NOTE_AS4 466
#define NOTE_B4 494
#define NOTE_C5 523
#define NOTE_CS5 554
#define NOTE_D5 587
#define NOTE_DS5 622
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_FS5 740
#define NOTE_G5 784
#define NOTE_GS5 831
#define NOTE_A5 880
#define NOTE_AS5 932
#define NOTE_B5 988
#define NOTE_C6 1047
#define NOTE_CS6 1109
#define NOTE_D6 1175
#define NOTE_DS6 1245
#define NOTE_E6 1319
#define NOTE_F6 1397
#define NOTE_FS6 1480
#define NOTE_G6 1568
#define NOTE_GS6 1661
#define NOTE_A6 1760
#define NOTE_AS6 1865
#define NOTE_B6 1976
#define NOTE_C7 2093
#define NOTE_CS7 2217
#define NOTE_D7 2349
#define NOTE_DS7 2489
#define NOTE_E7 2637
#define NOTE_F7 2794
#define NOTE_FS7 2960
#define NOTE_G7 3136
#define NOTE_GS7 3322
#define NOTE_A7 3520
#define NOTE_AS7 3729
#define NOTE_B7 3951
#define NOTE_C8 4186
#define NOTE_CS8 4435
#define NOTE_D8 4699
#define NOTE_DS8 4978

Se Steg
Relaterade Ämnen

Distansera mätningen med radiovågor

Inledning:Först och främst vill vi ursäkta oss för våra dåliga engelska. (Tyska elever: D)Vi uppfann en ny, billig enhet för att mäta avstånd upp till 1,5 km (ca 1 mil) med noggrannhet om ±5 mätaren (15 fot). Användning av radiovågor gör det möjligt...

Digital vindmätaren (vind mätaren)

bygga din egen digitala vindmätaren med hjälp av en cykel hastighetsmätare och andra billiga delar.Steg 1: delar Stora delar som behövs:Vinden koppar, del #7903 från Davis Instruments (www.davisnet.com), kosta runt $15.Cykel hastighetsmätare från någ...

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...

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...

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...

CD/DVD-ROM PC spel distanser

jag har stor korv-liknande fingrar. Det är svårt för mig att manipulera små saker ibland.Jag älskar hur PC-spel är förpackade nu, i DVD-titulera fall, men jag gillar inte hur flera diskar är staplade på varandra. Det gör det svårt för mig att ta upp...

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...