Medidor de distancia (4 / 5 paso)

Paso 4: Paso 4. Programación del medidor

El siguiente es un listado en un IDE de Arduino de código
/*
** Creado por: Charles Muchene
**
**
** Fecha: 03 de octubre de 2013
**
** Tiempo: 1412hrs
**
** Código de medidor de distancia
** El sistema mide la distancia
** usando el sensor ultrasonido HC-SR04
** y lo traduce en una serie
** de LEDs iluminados
**
** Diviértete y retocarlo!
*/
/ * Biblioteca para los tonos melódicos
** Que describe las frecuencias a producir * /
#include "pitches.h"

const int triggerPin = 10; pasador de gatillo (verde)
const echoPin int = 9; pin de Eco (naranja)
const int tonePin = 8; pin de tono (whilte-azul)
const int serialDataPin = 7; pin de datos serial (naranja)
const int registerClockPin = 6; registro pin de reloj (marrón)
const int shiftRegisterClockPin = 5; cambio de registro reloj
const int numOfRegisters = 16; número de registros

boolean const registra [numOfRegisters]; registro matriz
int litLEDs = 0; llevó el contador de pin
int rango = 100; valor de rango
int distancia; distancia

const int count = rango / numOfRegisters; (metros por LED)

puesta en marcha de la melodía
melodía de int [] = {NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4, NOTE_DS8, NOTE_DS8};

melodía de distancia crítica
int criticalMelody [] = {NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8};

Tenga en cuenta las duraciones: 4 = cuarto nota, 8 = corchea, etc..
int noteDurations [] = {4, 8, 8, 4, 4, 4, 4, 4, 4, 2};
int criticalNoteDurations [] = {4, 4, 4, 4};

void setup()
{
/ * Perno de configuraciones /
pinMode (triggerPin, salida);
pinMode (echoPin, entrada);
pinMode (serialDataPin, salida);
pinMode (registerClockPin, salida);
pinMode (shiftRegisterClockPin, salida);

/ * Luz em para arriba * /
lightEmUp();

/ * Iniciar melodía * /
playMelody();

/ * Apagar los LEDs * /
clearRegisters();

} / / setup

/ * Obtener distancia de HC-SR04 * /
getDistance() int
{
digitalWrite (triggerPin, bajo);
delayMicroseconds(2);
/ * Enviar señal de gatillo * /
digitalWrite (triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite (triggerPin, bajo);

/ * Devuelve la distancia en centímetros * /
volver (pulseIn (echoPin, alto) / 2) / 29,1;
} //get distancia

todos los leds de luz
void lightEmUp()
{
para (pin int = 0; pin < numOfRegisters; pin ++)
registros [pin] = alta;

writeRegisters();
} //light em para arriba

Ajuste los pernos de registro a baja
void clearRegisters()
{
para (int i = numOfRegisters - 1; i > = 0; i--)
registros [i] = bajo;
writeRegisters();
} //clear registros
/ * Escribir valores del registro y almacénelas * /
void writeRegisters()
{
/ * Registro pin de reloj ajustado bajo
** el contenido del registro de almacenamiento
** no cambia los valores de registro de cambio de cambio
**/
digitalWrite (registerClockPin, bajo);

/ * Bucle todos los registros * /
para (int i = numOfRegisters - 1; i > = 0; i--)
{
digitalWrite (shiftRegisterClockPin, bajo);
int val = registros [i];
digitalWrite (serialDataPin, val);
digitalWrite (shiftRegisterClockPin, HIGH);
} / / bucle todos los registros

/ * Esta señal traslados el contenido de
** del cambio de registro para los registros de almacenamiento
*/
digitalWrite (registerClockPin, HIGH);
} //write registra

configurar un pin individual alto o bajo
void setRegisterPin (int índice, int valor)
{
registros [índice] = valor;
} valor del pin de registro //set

/ * Iniciar juego uMelody * /
void playMelody()
{
para (int thisNote = 0; thisNote < 10; thisNote ++)
{
/ * Calcular la duración de la nota,
tomar un segundo dividido por tipo de nota
/ * por ejemplo trimestre Nota = 1000 / 4,
** corchea = 1000/8, etc. * /
int noteDuration = 1000/noteDurations [thisNote];
tono (tonePin, noteDuration y melodía [thisNote]);

/ * Para distinguir las notas, establecer un tiempo mínimo entre ellos.
** duración + 30% la nota parece que funciona bien * /
int pauseBetweenNotes = noteDuration * 1.30;
Delay(pauseBetweenNotes);
noTone(8);
} / / todo notas
} //play Inicio melodía

/ * Melodía crítica * /
void playCriticalMelody()
{
para (int thisNote = 0; thisNote < 4; thisNote ++)
{
int noteDuration = 1000/noteDurations [thisNote];

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

/ * Para distinguir las notas, establecer un tiempo mínimo entre ellos.
** duración + 30% la nota parece que funciona bien * /
int pauseBetweenNotes = noteDuration * 1.30;

Delay(pauseBetweenNotes);

noTone(8);

} / / bucle todas las notas

} //play melodía críticas

void loop()
{
/ * Obtener distancia * /
distancia = getDistance();

/ * Calcular los LEDs a la luz /
Si (rango > = distancia)
litLEDs = (rango - distancia) / cuenta;
otra cosa
litLEDs = -1;

/ * Luz LEDs dependiendo de la distancia calculada * /
para (pin int = 0; pin < numOfRegisters; pin ++)
{
Si (pin < = litLEDs)
setRegisterPin (pin, HIGH);
otra cosa
setRegisterPin (pin, LOW);
} //for lazo

writeRegisters(); efectuar cambios

/ * Jugar melodía de proximidad crítica * /
Si (litLEDs > = 13)
playCriticalMelody();

} //loop
/*************************************************
* "pitches.h" definición
*
* Públicas constantes
* Las constantes representan las frecuencias de tono
de la las notas respectivas en un concierto norma
* instrumento de sintonización como 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

Artículos Relacionados

Medidor de distancia ultrasónico con pantalla LCD en el Arduino UNO

Medidor de distancia ultrasónico con pantalla LCD en el Arduino UNO

En este tutorial vamos a ver un uso distinto del módulo de ultrasonidos HC-SR04. Este módulo es de uso frecuente en coches de juguetes y robots para localizar obstáculos pero puede ser utilizado para medir distancias así.Distancias medidas por la HC-
Medidor de distancia Arduino-wtv020-Sd - 16P / parlante

Medidor de distancia Arduino-wtv020-Sd - 16P / parlante

Hola a mis amigos,Quiero presentar mi proyecto de arduino a todos :)En primer lugar, quiero que sepas que el proyecto no es complejo como usted piensa.Los materiales que utilicé para este proyecto1) Arduino Uno / Arduino Nano o Micro (recomendado)2)
Medidor de distancia con fuentes grandes de explorar

Medidor de distancia con fuentes grandes de explorar

En este sencillo tutorial te mostrará cómo hacer un medidor de distancia. Utiliza un sensor ultrasónico para leer distancia y mostrar en fuentes grandes personalizadas en una pantalla LCD. Se alimenta por una batería, por lo que se puede tomar alrede
Medidor de distancia telémetro sonar Intel IoT Edison

Medidor de distancia telémetro sonar Intel IoT Edison

Yo he hablando últimamente con un ingeniero amigo mío y le dije sobre mi nuevo telémetro del laser, cuando él dio a entender que un telémetro con las funciones de registro sería mucho más interesante para él. Desde mi nuevo juguete es una Board Intel
Medidor de distancia de Arduino

Medidor de distancia de Arduino

Este un proyecto he estado trabajando desde hace algún tiempo. Es un dispositivo que se muestra en una pequeña pantalla LCD la distancia hasta el objeto más cercano que puede encontrar, generalmente el piso, el techo y dos paredes o columnas. Por lo
Mapa con medidor de distancia integrado

Mapa con medidor de distancia integrado

este mapa, con odómetro integrado, puede no poner fin a todas esas discusiones sobre cuánto usted realmente viajó, pero seguro que elevar el debate a nuevos niveles.En mi club de remo aquí en Hamburgo, entramos en cada viaje que hacemos en el diario
Detector con zumbador y LED medidor de distancia.

Detector con zumbador y LED medidor de distancia.

Resumen:Se trata de un circuito de detección de distancia simple con el uso de un sensor de ultrasonidos, un zumbador, una fila de LEDs, y 2 relés (opcional).El sensor de distancia ultrasónico encenderá una fila de LEDs dependiendo de distancia. Si s
Caja de medida de distancia basados en Arduino

Caja de medida de distancia basados en Arduino

Hola, en este proyecto les mostraré cómo construir su propia caja de medidor de distancia con Arduino uno y un sensor ultrasónico.Antes de comenzar, asegúrese de que usted tiene:Arduino unoSensor ultrasonido HC-SR04LCD 16 x 2Página oficial: http://ww
Arduino y sensor de ultrasonidos de control servo y distancia metro

Arduino y sensor de ultrasonidos de control servo y distancia metro

Arduino y sensor ultrasónico medidor de distancia y servo controlEn este proyecto se puede ver cómo controlar el motor servo y tu calcular la distancia usando arduino y sensor ultrasónico. Necesita: 1 Arduino (uno, nano, mini pro)HardwarePoner el tri
Aparatos con alarma automática de medición de distancia

Aparatos con alarma automática de medición de distancia

Hoy voy a mostrarte cómo hacer un aparato para medir distancia con alarma automática utilizando una placa de Arduino Uno y sensor ultrasónico. Se mostrará la distancia en una pantalla LCD y si algo se viene en una gama fija le advertirá con un mensaj
Plato de mármol de la nube y posavasos gota de agua

Plato de mármol de la nube y posavasos gota de agua

Tiempo tormentoso nunca parecía tan bueno o sido tan delicioso. Este plato de nube de mármol y cerámica tile Coaster de gota de agua conjunto ayudará a hacer de cualquier reunión un éxito torrencial!Un heads up: usé una máquina de chorro de agua para
¿Casero 35mm cámara de caja

¿Casero 35mm cámara de caja

siempre pensado en tomar la cámara fotográfica del agujero de alfiler al siguiente nivel? ¡ Pues ahora puede!Que algún día: La cámara funciona tan bien que he decidido actualizar el obturador por lo que será capaz de disparar a plena luz del día.----
Versátil y contador Digital de bajo costo

Versátil y contador Digital de bajo costo

este hack transformará una calculadora fácilmente origen barata en una versátil máquina de conteo. Puede utilizarse como un método barato para medir la distancia por medio de una rueda, interruptor de láminas e imán (odómetro de bicicleta creo).Así q
Estación meteorológica Arduino y servidor Web

Estación meteorológica Arduino y servidor Web

objetivoReemplazar mi PC (que ha sido en 24-7 por 6 años) y el software de estación meteorológica con un Arduino – menor consumo de energía, menos mantenimiento y espacio físico más pequeño.  Funcionalidad de PC mínimo que requiere la duplicación:• R