Hur man gör en SensorGlove med Android anslutning (6 / 9 steg)
Steg 6: Arduino kod
#include < SoftwareSerial.h >
SoftwareSerial bluetooth(2,3);
int flex1 = A0;
int flex2 = A1;
int flex3 = A2;
int flex4 = A3;
int flex5 = A4;
int valorflex1;
int valorflex2;
int valorflex3;
int valorflex4;
int valorflex5;
int estadoTotal_valorflex;
int num_anterior = 0;
int lista_num [] = {2,3,4}.
int contador = 0;
void setup() {
Serial.BEGIN(9600);
Bluetooth.BEGIN(9600);
}
void loop() {
valorflex1 = analogRead(flex1);
valorflex2 = analogRead(flex2);
valorflex3 = analogRead(flex3);
valorflex4 = analogRead(flex4);
valorflex5 = analogRead(flex5);
int array_valoresflex [] = {valorflex1, valorflex2, valorflex3, valorflex4, valorflex5};
estadoTotal_valorflex = valorTotal(array_valoresflex);
int num_bytes_enviar=(bindec(estadoTotal_valorflex));
lista_num [contador] = num_bytes_enviar;
om (contador < 2) {
Contador = contador + 1.
}
annat {
Contador = 0;
}
om (lista_num [0] == lista_num [1] & & lista_num[0]==lista_num[2]) {
om (num_anterior! = num_bytes_enviar) {
Bluetooth.write(num_bytes_enviar);
print_valores();
num_anterior = num_bytes_enviar;
}
}
Delay(25);
}
int valorTotal (int lista[])
{
int pulgar = lista [0];
int indice = lista [1].
int medio = lista [2].
int anular = lista [3].
int menique = lista [4].
int resultatet = 11111;
om (pulgar > = 2)
{
resultat = resultatet-10000;
}
om (indice > = 6)
{
resultat = resultatet-1000;
}
om (medio > = 6)
{
resultat = resultatet-100;
}
om (anular > = 6)
{
resultat = resultatet-10;
}
om (menique > = 6)
{
resultat = resultatet-1;
}
returnera resultat;
}
int bindec (int num)
{
int dedo = 0;
om (num % 10 == 1)
{
Dedo = dedo + 1;
}
om (((num/10)%10)==1)
{
Dedo = dedo + 2;
}
om (((num/10)/10)%10)==1)
{
Dedo = dedo + 4;
}
om (((num/10)/10)/10)%10)==1)
{
Dedo = dedo + 8;
}
om (((num/10)/10)/10)/10)%10)==1)
{
Dedo = dedo + 16;
}
returnera dedo;
}
void print_valores() {
Serial.Print("Pulgar:");
Serial.Print(valorflex1);
om (valorflex1 < 10) {
Serial.Print("");
}
Serial.Print ("Indice:");
Serial.Print(valorflex2);
om (valorflex2 < 10) {
Serial.Print("");
}
Serial.Print ("Medio:");
Serial.Print(valorflex3);
om (valorflex3 < 10) {
Serial.Print("");
}
Serial.Print ("Anular:");
Serial.Print(valorflex4);
om (valorflex4 < 10) {
Serial.Print("");
}
Serial.Print ("Menique:");
Serial.Print(valorflex5);
om (valorflex5 < 10) {
Serial.Print("");
}
Serial.Print ("Binario:");
Serial.Print(estadoTotal_valorflex);
om (estadoTotal_valorflex < 10000) {
Serial.Print("");
om (estadoTotal_valorflex < 1000) {
Serial.Print("");
om (estadoTotal_valorflex < 100) {
Serial.Print("");
om (estadoTotal_valorflex < 10) {
Serial.Print("");
}
}
}
}
Serial.Print ("Decimal:");
Serial.println(bindec(estadoTotal_valorflex));
}