Arduino paso secuenciador (3 / 5 paso)

Paso 3: código

El código original viene con una configuración de pantalla LCD para la visualización de cambios de frecuencia. Sólo de borrar esa parte, pero usted puede conseguir el código con la instalación de lcd aquí.

/* ======================================================================
Consola Punk de Arduino
Un secuenciador de tono simple programable 8 paso
por dano/beavisaudio.com
Revoluciones
-----------------------------------
Versión inicial de la red espanola de Sept 15
======================================================================*/
Mapa de todos los pines de entrada y salidos
#define AnalogInFrequency 1
#define AnalogInTempo 2
#define AnalogInDuration 0
#define DigitalOutSignal 11
#define DigitalInSwitch0 2
#define DigitalInSwitch1 3
#define DigitalInSwitch2 4
#define DigitalInSwitch3 5
#define DigitalInSwitch4 6
#define DigitalInSwitch5 7
#define DigitalInSwitch6 8
#define DigitalInSwitch7 9
#define DigitalInStartStop 10
#define DigitalOutLED 12
Configurar la matriz para cada paso
pasos de int [] = {100,120,140,160,180,200,220,240};
varios limpieza
duración de int = 50;
int pitchval = 1;
fPlayMode int = true;
int lastPushedStep = -1;
Inicializar el tempo
tempo de int = 100;
void setup()
{
configurar modos de pines (pernos de Digital son de entrada por defecto, pero
Me gusta em establece explícitamente por lo que el código es claro.
pinMode (DigitalInSwitch0, entrada);
pinMode (DigitalInSwitch1, entrada);
pinMode (DigitalInSwitch2, entrada);
pinMode (DigitalInSwitch3, entrada);
pinMode (DigitalInSwitch4, entrada);
pinMode (DigitalInSwitch5, entrada);
pinMode (DigitalInSwitch6, entrada);
pinMode (DigitalInSwitch7, entrada);
pinMode (DigitalInStartStop, entrada);
pinMode (DigitalOutSignal, salida);
pinMode (DigitalOutLED, salida);

}

void loop()
{
Lazo de la secuencia principal
para (int i = 0; i < 8; i ++)
{
¿Estamos jugando o parar?
fPlayMode = digitalRead (DigitalInStartStop);
digitalWrite (DigitalOutLED, alto);
Verificar el Hardware
readSwitches();
readPots();

actualización de la pantalla
updateDisplay();

Hacer el ruido
Si (fPlayMode)
{
freqout (pasos [i], duración);
}
digitalWrite (DigitalOutLED, bajo);

Pausa entre pasos
retardo (tempo);
}
}

void updateDisplay()
{
Serial.Print (254, BYTE);
Serial.Print (192, BYTE);
Serial.Print ("t");
Serial.Print (tempo);
Serial.Print ("d:");
Serial.Print (duración);
Si (lastPushedStep! = -1)
{
Serial.Print ("*");
Serial.Print (lastPushedStep);
}
}
Lea los valores actuales de las ollas, llamadas del lazo.
void readPots)
{
Tempo = (analogRead (AnalogInTempo) * 1.9);
duración = (analogRead (AnalogInDuration));
}
Leer los valores actuales de los interruptores y
Si presiona, cambiar frecuencia de ranura del interruptor
mediante la lectura de la olla de la frecuencia.
void readSwitches()
{
restablecer botón empujado el último número
lastPushedStep = -1;

Compruebe el interruptor de 0, si pulsa, meter la frecuencia actual en paso 0, etc., etc..
Si (digitalRead (DigitalInSwitch0) == HIGH)
{
pasos [0] = analogRead(AnalogInFrequency);
lastPushedStep = 1;
}

else if (digitalRead (DigitalInSwitch1) == HIGH)
{
pasos [1] = analogRead(AnalogInFrequency);
lastPushedStep = 2;
}

else if (digitalRead (DigitalInSwitch2) == HIGH)
{
pasos [2] = analogRead(AnalogInFrequency);
lastPushedStep = 3;
}
else if (digitalRead (DigitalInSwitch3) == HIGH)
{
pasos [3] = analogRead(AnalogInFrequency);
lastPushedStep = 4;
}
else if (digitalRead (DigitalInSwitch4) == HIGH)
{
pasos [4] = analogRead(AnalogInFrequency);
lastPushedStep = 5;
}
else if (digitalRead (DigitalInSwitch5) == HIGH)
{
pasos [5] = analogRead(AnalogInFrequency);
lastPushedStep = 6;
}
else if (digitalRead (DigitalInSwitch6) == HIGH)
{
pasos [6] = analogRead(AnalogInFrequency);
lastPushedStep = 7;
}
else if (digitalRead (DigitalInSwitch7) == HIGH)
{
pasos [7] = analogRead(AnalogInFrequency);
lastPushedStep = 8;
}
}

freqout código por Paul Badger
Freq - valor de la frecuencia
t - tiempo de duración de tono
void freqout (int freq, int t)
{
int hperiod;     calcular 1/2 tiempo en nosotros
ciclos de tiempo, i;

restar 7 US para arriba - digitalWrite determinado empíricamente
hperiod = (500000 / ((freq-7) * pitchval));

calcular ciclos
ciclos = (freq (largo) * t (tiempo)) / 1000;    calcular ciclos
para (i = 0; i < = ciclos; i ++)
{/ / juego Nota para t ms
digitalWrite (DigitalOutSignal, alto);
delayMicroseconds(hperiod);
digitalWrite (DigitalOutSignal, bajo);
delayMicroseconds (hperiod - 1);     -1 de microsegundo fraccional en digitaWrite arriba
}
}

Artículos Relacionados

16 paso secuenciador (+/-9V a +-15V)

16 paso secuenciador (+/-9V a +-15V)

Este es un intermedio a avanzado del proyecto y no lo recomiendo como un primer proyecto si usted se acaba de empezar en sintetizadores o electrónica. Aquí se muestran sólo el circuito y alguna explicación. Supone mucha experiencia de proyecto constr
Cómo cablear un cnc arduino paso a paso

Cómo cablear un cnc arduino paso a paso

Lo que usted necesita >1 arduino uno / nano 5.33 comprar desde aquímotor paso a paso 3 unidad Easydriver 2.12 comprar desde aquí3 paso a paso motor 2.12 motor paso a paso de $motor paso a paso grande de 30$ 5 desde aquíalambre5V = fuente de 12 vY est
MFOS! 6 panel frontal de paso secuenciador y pcb

MFOS! 6 panel frontal de paso secuenciador y pcb

Tras haber sido puesto por la cantidad de cableado necesario para terminar el secuenciador de paso MFOS 16 con la Junta de Variclock, me decidí a hacer un PCB para el panel frontal. Como medidas una fila completa de eurorack pude no grabe esto en cas
Cicadaboom - 8 paso secuenciador y un sintetizador simple

Cicadaboom - 8 paso secuenciador y un sintetizador simple

este instrumento es fácil de construir y de la diversión para jugar con.Arduino (estoy usando duemilenova) en este instrumento está actuando sólo como fuente de energía y como un simple contador de tiempo, así que si no tienes uno que todavía puede c
Paso 8 – paso secuenciador

Paso 8 – paso secuenciador

Hice un pequeño secuenciador del paso 8. Puede establecer el tono con un potenciómetro y luego pasar al paso siguiente.Finalmente puede comenzar la secuencia.
Control DC y paso a paso motores con módulos de controlador de Motor Dual L298N y Arduino

Control DC y paso a paso motores con módulos de controlador de Motor Dual L298N y Arduino

No tienes que gastar mucho dinero para el control de motores con Arduino o tablero compatible. Después de algunos caza alrededor de nosotros encontró un módulo de control del motor limpio basado en el L298N puente H IC que puede le permite controlar
Controlar una placa de Arduino usando un Control remoto infrarrojo

Controlar una placa de Arduino usando un Control remoto infrarrojo

-IntroducciónHola a todos, mi nombre es Noreddine Kessa, soy un entusiasta de la electrónica.  Me divertí mucho este fin de semana jugando con mi juguete nuevo, Kit Arduino ATmega328 DIY que he conseguido en eBay, y me encantaria compartir la alegría
Construir transmisión de FM tu estación con Arduino

Construir transmisión de FM tu estación con Arduino

Hi todo el mundo.Antes de 3 meses atrás, uno de mis amigos me piden construir un transmisor de FM Simple, que para transmitir un archivo de Audio de ordenador y REPRODUCIRLO en cualquier canal de radio, ajustar a la frecuencia del receptor, igual que
Reloj de abuelo "Atómico" de Arduino

Reloj de abuelo "Atómico" de Arduino

Yo quería un reloj de abuelo de electro-mecánicos que no requerían de la bobina y la corrección de cada semana, pero que parecía y sonaba tan original como sea posible.ver mi sitio aquí Por reloj webEste Instructable muestra cómo agregar Arduino cont
4wd de Arduino robot con el sensor ping "J-Bot"

4wd de Arduino robot con el sensor ping "J-Bot"

nivel de experiencia: intermedio (requiere de soldadura)Tiempo requerido: 3 a 5 horas dependiendo de la experienciaJ-BOT Kit JamecoAlguien mencionó que Jameco necesitaba una mascota robótica. Siempre he sido un manitas, especialmente con la electróni
Múltiples Control de la temperatura del fermentador con Arduino

Múltiples Control de la temperatura del fermentador con Arduino

Control de la temperatura a menudo es considerado uno de los mejores cinco pasos hacia la cerveza mejor. (http://beerandwinejournal.com/10-better-1/) Existen numerosos métodos para mantener la fermentación del mosto a la temperatura óptima de envolve
Reloj de Arduino Etch-A-Sketch

Reloj de Arduino Etch-A-Sketch

he visto varios Arduino por Etch-A-Sketch relojes en la web, pero ninguno con las instrucciones (¿es algún tipo de secreto? Es alguien pensando en hacer rico en el mercado global de reloj Etch-A-Sketch?). He usado Arduino, pero nunca utilizar motores
Arduino robar Distractor alarma

Arduino robar Distractor alarma

¿Ha sido usted víctima de la llamada "banda de salisi"? Un grupo de individuos que sólo un ojo en usted y espere hasta que deje caer sus objetos de valor y toma inmediatamente como perdiste tu atención. Son muy comunes en restaurantes, terminale
Partir de Arduino (puertos, Pins y programación)

Partir de Arduino (puertos, Pins y programación)

todos los derechos, por lo que estoy aprendiendo el arte de Arduinoing y pensamiento te llevo a lo largo del paseo...En este tutorial:Pins - los agujeros en su Arduino y cómo utilizarlosPuertos--colecciones de pinsProgramación - Basic de programación