Paso 3: Código de Arduino parte 1
#include "pitches.h"momentarty interruptor de clavija
const int buttonPin = 12;
int buttonState = 0;
Valor del sensor asignada
int backPos;
Valor de la "posición normal"
int basePos = 40;
pin digital motor de vibración
int vibePin = 9;
pin digital de zumbador
int buzzerPin = 13;
longitud de retardo entre alarmas
intervalAlarm largo = 400;
almacenará la última vez que actualizó el zumbador
previousMillisAlarm largo = 0;
int valor, valor2;
tiempo = 0;
int periodo = 100;
int desplazamiento = 500;
void setup() {}
Serial.Begin(9600);
Inicializar las clavijas apropiadas para entradas o salidas
pinMode (vibePin, salida);
pinMode (buzzerPin, salida);
pinMode (buttonPin, entrada);
}
void loop() {}
Empezar a leer el y valores ejes de acelerómetro.
ejeY respectivamente int = analogRead(A0);
asignar los valores a un rango que es más fácil trabajar con (1-100).
backPos = mapa (ejeY respectivamente, 240,400,0,100);
empezar a leer el estado de botón
buttonState = digitalRead(buttonPin);
Si se presiona el botón set el valor de posición de la base a la posición actual de la espalda
Esto establece un estado "normal" que el código mide una diferencia de.
Si (buttonState == HIGH) {}
basePos = backPos; }
Si backPos está en una mala posición
Si (backPos > basePos + 5) {}
Encienda el motor de vibración
vibeMotor();
encender el zumbador piezo
Alarm();
}
de lo contrario apague el motor y zumbador
Else {}
digitalWrite (vibePin, bajo);
digitalWrite (buzzerPin, bajo);
}
}
función que controla el zumbador piezo
{} void alarm()
usar blink con biblioteca lógica y tono de retardo para la alarma de pulso.
currentMillisAlarm largo sin signo = millis();
Si (currentMillisAlarm - previousMillisAlarm > intervalAlarm) {}
restablecer el 'timer' previousMillisAlarm = currentMillisAlarm;
Activar tono de timbre (buzzerPin, 65.200);
}
}
función que controla el motor de vibración
void vibeMotor() {}
se desvanecen sin pulsos de lógica demora el motor de la vibración.
tiempo = millis(); valor = 128+127*cos(2*PI/periode*time);
valor2 = 128+127*cos(2*PI/periode*(displace-time));
analogWrite (vibePin, valor);
}