Compteur de distance (4 / 5 étapes)

Étape 4: Étape 4. Programmation le compteur

Ce qui suit est un liste sur un IDE Arduino du code
/*
** Créé par : Charles Muchene
**
**
** Date: 3 octobre 2013
**
** Temps : 1412hrs
**
** Code de compteur de distance
** Le système de mesure de la distance
** à l’aide de capteur à ultrason HC-SR04
** et il se traduit par une série
** des LED allumées
**
** S’amuser et ruser !
*/
/ * Bibliothèque pour les emplacements mélodiques
** Il décrit les fréquences à produire * /
#include « pitches.h »

const int triggerPin = 10 ; ergot (vert)
const int echoPin = 9 ; goupille d’Echo (orange)
const int tonePin = 8 ; goupille de tonalité (whilte-bleu)
const int serialDataPin = 7 ; broche de données série (orange)
const int registerClockPin = 6 ; s’inscrire à broche horloge (brun)
const int shiftRegisterClockPin = 5 ; Registre à décalage horloge
const int numOfRegisters = 16 ; nombre de registres

const boolean enregistre [numOfRegisters] ; inscrire tableau
int litLEDs = 0 ; LED compteur de broche
gamme int = 100 ; valeur de la plage
distance de l’int ; distance

const int count = plage / numOfRegisters ; (m / LED)

démarrage de mélodie
la mélodie d’int [] = {NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4, NOTE_DS8, NOTE_DS8} ;

mélodie de distance critique
int criticalMelody [] = {NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8} ;

Notez les durées: 4 = noire, 8 = croche, etc..
int noteDurations [] = {4, 8, 8, 4, 4, 4, 4, 4, 4, 2} ;
int criticalNoteDurations [] = {4, 4, 4, 4} ;

void setup()
{
/ * Pin configurations * /
pinMode (triggerPin, sortie) ;
pinMode (echoPin, entrée) ;
pinMode (serialDataPin, sortie) ;
pinMode (registerClockPin, sortie) ;
pinMode (shiftRegisterClockPin, sortie) ;

/ * La lumière em up * /
lightEmUp() ;

/ * Démarrage mélodie * /
playMelody() ;

/ * Éteindre toutes les LEDs * /
clearRegisters() ;

} / / installation

/ * Obtenir la distance de HC-SR04 * /
int getDistance()
{
digitalWrite (triggerPin, basse) ;
delayMicroseconds(2) ;
/ * Envoyer le signal de déclenchement * /
digitalWrite (triggerPin, HIGH) ;
delayMicroseconds(10) ;
digitalWrite (triggerPin, basse) ;

/ * retourne la distance en centimètres * /
retour (pulseIn (echoPin, haut) / 2) / 29,1 ;
} //get distance

tous les voyants
Sub lightEmUp()
{
pour (broche int = 0; broche < numOfRegisters ; pin ++)
registres [pin] = élevé ;

writeRegisters() ;
} //light em up

toutes les goupilles de registre la valeur basse
Sub clearRegisters()
{
pour (int i = numOfRegisters - 1; i > = 0; i--)
les registres [i] = faible ;
writeRegisters() ;
} //clear enregistre
/ * Écriture de valeurs de Registre et de les stocker * /
Sub writeRegisters()
{
/ * Avec registre broche horloge réglée basse
** le contenu du Registre stockage
** ne sont pas modifiées par les valeurs de Registre Maj variables
**/
digitalWrite (registerClockPin, basse) ;

/ * Boucle dans tous les registres * /
pour (int i = numOfRegisters - 1; i > = 0; i--)
{
digitalWrite (shiftRegisterClockPin, basse) ;
int val = registres [i] ;
digitalWrite (serialDataPin, val) ;
digitalWrite (shiftRegisterClockPin, HIGH) ;
} / / tous les registres des boucles

/ * Ce signal, le contenu des transferts
** du déplacement s’inscrire aux registres stockage
*/
digitalWrite (registerClockPin, HIGH) ;
} //write enregistre

définir un NIP individuel haute ou basse
void setRegisterPin (int index, int valeur)
{
registres [index] = value ;
} //set valeur de Registre broche

/ * Play start uMelody * /
Sub playMelody()
{
pour (int thisNote = 0; thisNote < 10 ; thisNote ++)
{
/ * Pour calculer la durée de la note,
prendre une seconde divisée par type de note
/ * par exemple la note noire = 1000 / 4,
** note croche = 1000/8, etc. * /
int noteDuration = 1000/noteDurations [thisNote] ;
ton (tonePin, mélodie [thisNote], noteDuration) ;

/ * Pour distinguer les notes, définir un temps minimal entre eux.
** la note Durée + 30 % semble bien fonctionner * /
int pauseBetweenNotes = noteDuration * 1.30 ;
Delay(pauseBetweenNotes) ;
noTone(8) ;
} / / toutes les notes
} //play start up mélodie

/ * Mélodie critique * /
Sub playCriticalMelody()
{
pour (int thisNote = 0; thisNote < 4; thisNote ++)
{
int noteDuration = 1000/noteDurations [thisNote] ;

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

/ * Pour distinguer les notes, définir un temps minimal entre eux.
** la note Durée + 30 % semble fonctionner bien * /
int pauseBetweenNotes = noteDuration * 1.30 ;

Delay(pauseBetweenNotes) ;

noTone(8) ;

} / / boucle toutes les notes

} //play mélodie critique

void loop()
{
/ * Get distance * /
distance = getDistance() ;

/ * Calculer les LED à lumière * /
Si (plage > = distance)
litLEDs = (plage - distance) / compter ;
d’autre
litLEDs = -1 ;

/ * Voyants en fonction de la distance calculée * /
pour (broche int = 0; broche < numOfRegisters ; pin ++)
{
Si (broche < = litLEDs)
setRegisterPin (tige, haute) ;
d’autre
setRegisterPin (tige, faible) ;
} //for boucle

writeRegisters() ; apporter des changements

/ * Jouer critique proximité mélodie * /
Si (litLEDs > = 13)
playCriticalMelody() ;

} //loop
/*************************************************
* "définition de pitches.h"
*
* Publics constantes
* Les constantes représentent les fréquences de pitch
* des notes respectives sur un concert standard
* instrument tuning comme un 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

Articles Liés

Compteur de distance télémètre pour le sonar Intel IoT Edison

Compteur de distance télémètre pour le sonar Intel IoT Edison

J'ai été sur le chat dernièrement avec un ami ingénieur civil des mines, et je lui parlais de mon nouveau télémètre laser, quand il a laissé entendre qu'un télémètre avec fonctionnalités de journalisation serait beaucoup plus intéressant pour lui. Ét
Compteur de Distance Arduino-wtv020-Sd - 16p / parlant

Compteur de Distance Arduino-wtv020-Sd - 16p / parlant

Bonjour mes amis,Je veux présenter mon projet arduino vous tous:)Tout d'abord, je veux que vous sachiez que ce projet n'est pas complex que vous le pensez.Les matériaux que j'ai utilisé pour ce projet1) Arduino Uno / Arduino Nano ou Micro (recommandé
Versatile et Low Cost compteur Digital

Versatile et Low Cost compteur Digital

ce hack va transformer une machine polyvalente de comptage une calculatrice d'origine facilement à peu de frais. Il peut être utilisé comme une méthode bon marché pour mesurer la distance à l'aide d'une roue, l'interrupteur reed et l'aimant (odomètre
Dispositif d’alarme automatique de mesure de distance

Dispositif d’alarme automatique de mesure de distance

Aujourd'hui je vais vous montrer comment faire un dispositif de mesure de Distance avec alarme automatique à l'aide d'un Arduino Uno Board et le capteur à ultrasons. Il va montrer vous à distance sur un écran LCD et si quelque chose va venir dans une
Télémètre à ultrasons avec affichage à cristaux liquides sur Arduino UNO

Télémètre à ultrasons avec affichage à cristaux liquides sur Arduino UNO

Dans ce tutoriel nous allons voir une utilisation différente du module ultrasons HC-SR04. Ce module est souvent utilisé sur les robots et les voitures jouets pour localiser les obstacles, mais il peut être utilisé pour mesurer les distances aussi bie
Survie, bâton de randonnée

Survie, bâton de randonnée

Hey tout le monde ! Depuis un certain temps j'ai eu quelque chose à partager. Été une année bien remplie. Je n'ai pas eu beaucoup de temps pour bricoler avec des trucs, mais je n'est venu vers le haut avec ce plaisir peu survie bâton de randonnée/mar
Maison 35mm Caméra Box

Maison 35mm Caméra Box

jamais pensé à prendre la caméra trou d'épingle au niveau suivant ? Eh bien maintenant vous pouvez !Un jour à venir : La caméra fonctionne tellement bien, que j'ai décidé de la mise à niveau de l'obturateur, il sera en mesure de tirer en plein jour.-
Bushcraft, Kit de survie pour des durées longues - partie 1 - gilet de sauvetage Support

Bushcraft, Kit de survie pour des durées longues - partie 1 - gilet de sauvetage Support

Ce n'est pas un EDC, BOB ou autre chose, sur que les élitistes seraient mettre un nom. J'ai décidé de faire une instructable sur le kit que j'ai utiliser dehors dans les bois. J'aime le plein air et l'utiliser un peu. Il est toujours en cours d'améli
Canon de Minecraft entièrement automatique !

Canon de Minecraft entièrement automatique !

C'est mon premier instructable donc ne déteste pas. Cet engin est entièrement automatique (gouttes TNT puis il explose en 1 simple pression d'un boutonÉtape 1: Éléments, que vous aurez besoin -20 de n'importe quel bloc (j'utilise Pierre)-poussière de
Véhicule intelligent distance évitement capteur kWh compteur nuage enabler

Véhicule intelligent distance évitement capteur kWh compteur nuage enabler

Oui, réaliser une action aperçus de votre vieux compteur kWh en mettant ses données volumineuses dans le nuage.Étape 1: Ce que vous aurez besoin1 Arduino uno (environ 3 dollars à Aliexpress)3 femelles à fils de raccordement male (10 centimes)1 véhicu
Arduino et capteur à ultrasons contrôle servo et distance compteur

Arduino et capteur à ultrasons contrôle servo et distance compteur

Arduino et capteur à ultrasons contrôle servo et distance meterDans ce projet, vous pouvez voir comment contrôler le moteur servo et tu calculer la distance à l'aide d'arduino et capteur à ultrasons. Vous avez besoin: 1. Arduino (uno, nano, mini pro)
Détecteur de distance avec compteur LED et Buzzer.

Détecteur de distance avec compteur LED et Buzzer.

Vue d'ensemble :Il s'agit d'un circuit de détection de distance simple avec l'utilisation d'un capteur à ultrason, un buzzer, une rangée de LEDs et 2 relais (en option).Le capteur de distance à ultrasons s'allumera une rangée de LEDs selon la distanc
Compteur de push-up

Compteur de push-up

Il est facile de tricher vous-même lorsque vous faites des tractions. Es-tu vraiment assez bas, ou était que l'une de ces pompes « demi-essai wimpy » ? Il est également difficile si vous essayez d'avoir une compétition de push-up. Les deux concurrent
ESP8266 et Visuino : Servo de contrôle à distance par Wi-Fi avec molette

ESP8266 et Visuino : Servo de contrôle à distance par Wi-Fi avec molette

ESP8266 modules sont des contrôleurs de très faible coût stand-alone avec Wi-Fi intégrée. Dans ce Instructable je vais vous montrer comment vous pouvez contrôler un Servo à distance par Wi-Fi avec un encodeur rotatif. L'Instructable est une version s