Paso 6: Código de Arduino (como lo hicimos)
contadorint contador = 0; no usar este derecho ahora-intentan poner en práctica para cuando el sensor de efecto hall no estaba funcionando correctamente; es decir, su lectura fue fluctuando violentamente.
Fotoresistor
Apagado de int = A1; asignar la clavija de entrada de sensor de luz
int groundPin = A4;
int groundValue = 0;
Sensor de efecto Hall
int hallPin = A5; asignar la clavija de entrada de sensor de efecto hall
int hallValue = 0;
crear instancias de potenciómetro
int sensorPin = A0; asignar la clavija de entrada para el potenciómetro
int sensorValue = 0; variable para almacenar el valor que viene desde el sensor
int outputValue = 0;
int newSensorValue = 0;
int newOutputValue = 0;
int newerOutputValue = 0;
asignar pins LED cara componentes
sonrisa de int = 2;
int straightface = 3;
int triste = 4;
ojos de int = 5;
las cejas de int = 6;
cambiar la variable caso
cara int = 1;
emociones
const int ECSTATIC = 1;
const int feliz = 2;
const int recto = 3;
const int SAD = 4; const int enojado = 5;
const int sorpresa = 6;
PROGRAMA DE INSTALACIÓN
void setup() {}
Serial.Begin(9600);
Sensor de efecto Hall
pinMode (hallPin, entrada);
Potenciómetro de
pinMode(smile,OUTPUT);
pinMode(straightface,OUTPUT);
pinMode(sad,OUTPUT);
pinMode(eyes,OUTPUT);
pinMode(brows,OUTPUT);
}
FUNCIÓN DE CONMUTACIÓN DE CARA
void faceswitch() {}
{Switch(Face)}
extático
caso 1: digitalWrite (ojos, alto);
digitalWrite (sonrisa, alto);
digitalWrite (straightface, HIGH);
digitalWrite (triste, baja);
digitalWrite (cejas, LOW);
rotura;
feliz
caso 2: digitalWrite (ojos, alto);
digitalWrite (sonrisa, alto);
digitalWrite (straightface, bajo);
digitalWrite (triste, baja);
digitalWrite (cejas, LOW);
rotura;
recto
caso 3: digitalWrite (ojos, alto);
digitalWrite (sonrisa, baja);
digitalWrite (triste, baja);
digitalWrite (straightface, HIGH);
digitalWrite (cejas, LOW);
rotura;
triste
caso 4: digitalWrite (ojos, alto);
digitalWrite (sonrisa, baja);
digitalWrite (triste, alto);
digitalWrite (straightface, bajo);
digitalWrite (cejas, LOW);
rotura;
Angry
caso 5: digitalWrite (ojos, alto);
digitalWrite (sonrisa, baja);
digitalWrite (triste, alto);
digitalWrite (straightface, HIGH);
digitalWrite (cejas, HIGH);
rotura;
sorpresa
caso 6: digitalWrite (ojos, alto);
digitalWrite (sonrisa, alto);
digitalWrite (triste, alto);
digitalWrite (straightface, bajo);
digitalWrite (cejas, LOW);
rotura;
}
}
SI LAS DECLARACIONES EN EL FUNCIONAMIENTO DEL LAZO
void loop() {}
Fotoresistor
int lightLevel = analogRead(lightPin); Leer la
lightlevel
lightLevel = mapa (lightLevel, 900, 0, 0, 255);
lightLevel = restringir (lightLevel, 0, 255); //make seguro de la
valor está entre //0 y 255
Serial.println(lightLevel);
Delay(50);
hallValue = analogRead(hallPin);
Serial.println(hallValue);
Delay(50);
potenciómetro de
sensorValue = analogRead(sensorPin); leer el valor del sensor:
outputValue = mapa (sensorValue, 0, 1023, 0, 600);
Delay(50);
faceswitch();
if(outputValue<100) {}
cara = 1; extático
}
else if (outputValue > 100 & & outputValue < 200) {}
cara = 2; feliz
}
else if (outputValue > 200 & & outputValue < 300) {}
cara = 3; recto
}
else if (outputValue > 300 & & outputValue < 400) {}
cara = 4; triste
}
else if (outputValue > 400 & & outputValue < 500) {}
cara = 5; Angry
}
else if (outputValue > 500 & & outputValue < 600) {}
cara = 6; sorpresa
}
Si (lightLevel > 70
){
newOutputValue = map(analogRead(sensorPin), 0, 1023, 0, 600); leer el valor del sensor:
newOutputValue = restringir (newOutputValue, 0, 600);
while((ABS(MAP(analogRead(sensorPin), 0, 1023, 0, 600)-newOutputValue)) < 50) {}
Si (cara! = 5 & & cara! = 6 & & cara! = 1) {}
cara-= 1;
faceswitch();
while((ABS(MAP(analogRead(sensorPin), 0, 1023, 0, 600)-newOutputValue)) < 50) {}
Delay(1000);
}
Serial.println ("cambio de cara");
}
Si (cara == 5) {}
cara-= 2;
faceswitch();
while((ABS(MAP(analogRead(sensorPin), 0, 1023, 0, 600)-newOutputValue)) < 50) {}
Delay(1000);
}
Serial.println ("cambio de enojado");
}
}
}
Si (hallValue < 5) {}
newOutputValue = map(analogRead(sensorPin), 0, 1023, 0, 600); leer el valor del sensor:
newOutputValue = restringir (newOutputValue, 0, 600);
while((ABS(MAP(analogRead(sensorPin), 0, 1023, 0, 600)-newOutputValue)) < 50) {}
Si (cara! = 5 & & cara! = 6 & & cara! = 1) {}
cara-= 1;
faceswitch();
while((ABS(MAP(analogRead(sensorPin), 0, 1023, 0, 600)-newOutputValue)) < 50) {}
Delay(1000);
}
Serial.println ("cambio de cara");
}
Si (cara == 5) {}
Serial.println ("cambio de enojado");
cara-= 2;
faceswitch();
while((ABS(MAP(analogRead(sensorPin), 0, 1023, 0, 600)-newOutputValue)) < 50) {}
Delay(1000);
}
}
}
}
}