Étape 6: Code de l’Arduino (comment nous l’avons fait)
compteurint compteur = 0 ; n’utilisez ne pas ce droit maintenant-a tenté de mettre en œuvre pour lorsque le capteur à effet hall ne fonctionnait pas correctement ; c'est-à-dire sa lecture fluctue énormément.
Photorésistance
int lightPin = A1 ; assigner la broche d’entrée capteur de lumière
int groundPin = A4 ;
int groundValue = 0 ;
Capteur à effet Hall
int hallPin = A5 ; assigner des broches d’entrée de capteur à effet hall
int hallValue = 0 ;
instanciation de potentiomètre
int sensorPin = A0 ; assigner la broche d’entrée pour le potentiomètre
int sensorValue = 0 ; variable pour stocker la valeur provenant de la sonde
int outputValue = 0 ;
int newSensorValue = 0 ;
int newOutputValue = 0 ;
int newerOutputValue = 0 ;
assigner des pins à LED visage composants
sourire d’int = 2 ;
int straightface = 3 ;
int triste = 4 ;
int yeux = 5 ;
sourcils int = 6 ;
commutateur boîtier variable
face int = 1 ;
émotions
const int ECSTATIC = 1 ;
const int HAPPY = 2 ;
const int droite = 3 ;
const int SAD = 4; const int ANGRY = 5 ;
const int SURPRISE = 6 ;
PROGRAMME D’INSTALLATION
void setup() {}
Serial.Begin(9600) ;
Capteur à effet Hall
pinMode (hallPin, entrée) ;
Potentiomètre
pinMode(smile,OUTPUT) ;
pinMode(straightface,OUTPUT) ;
pinMode(sad,OUTPUT) ;
pinMode(eyes,OUTPUT) ;
pinMode(brows,OUTPUT) ;
}
FONCTION DE COMMUTATION DE VISAGE
void faceswitch() {}
{Switch(face)}
extatique
cas 1: digitalWrite (yeux, HIGH) ;
digitalWrite (sourire, HIGH) ;
digitalWrite (straightface, HIGH) ;
digitalWrite (triste, faible) ;
digitalWrite (sourcils, faible) ;
rupture ;
heureux
cas 2: digitalWrite (yeux, HIGH) ;
digitalWrite (sourire, HIGH) ;
digitalWrite (straightface, basse) ;
digitalWrite (triste, faible) ;
digitalWrite (sourcils, faible) ;
rupture ;
droites
case 3: digitalWrite (yeux, HIGH) ;
digitalWrite (sourire, faible) ;
digitalWrite (triste, faible) ;
digitalWrite (straightface, HIGH) ;
digitalWrite (sourcils, faible) ;
rupture ;
triste
case 4: digitalWrite (yeux, HIGH) ;
digitalWrite (sourire, faible) ;
digitalWrite (triste, élevé) ;
digitalWrite (straightface, basse) ;
digitalWrite (sourcils, faible) ;
rupture ;
en colère
cas 5: digitalWrite (yeux, HIGH) ;
digitalWrite (sourire, faible) ;
digitalWrite (triste, élevé) ;
digitalWrite (straightface, HIGH) ;
digitalWrite (sourcils, HIGH) ;
rupture ;
surprise
case 6: digitalWrite (yeux, HIGH) ;
digitalWrite (sourire, HIGH) ;
digitalWrite (triste, élevé) ;
digitalWrite (straightface, basse) ;
digitalWrite (sourcils, faible) ;
rupture ;
}
}
SI DES DÉCLARATIONS DANS LE FONCTIONNEMENT EN BOUCLE
void loop() {}
Photorésistance
Éclairement int = analogRead(lightPin) ; Lire le
éclairement
Éclairement = carte (éclairement, 900, 0, 0, 255) ;
Éclairement = contraindre (éclairement, 0, 255); //make que la
valeur se situe entre //0 et 255
Serial.println(lightLevel) ;
Delay(50) ;
hallValue = analogRead(hallPin) ;
Serial.println(hallValue) ;
Delay(50) ;
potentiomètre
sensorValue = analogRead(sensorPin) ; lire la valeur de la sonde :
outputValue = carte (sensorValue, 0, 1023, 0, 600) ;
Delay(50) ;
faceswitch() ;
if(outputValue<100) {}
visage = 1 ; extatique
}
ElseIf (outputValue > 100 & & outputValue < 200) {}
visage = 2 ; heureux
}
ElseIf (outputValue > 200 & & outputValue < 300) {}
visage = 3 ; droites
}
ElseIf (outputValue > 300 & & outputValue < 400) {}
visage = 4 ; triste
}
ElseIf (outputValue > 400 & & outputValue < 500) {}
visage = 5 ; en colère
}
ElseIf (outputValue > 500 & & outputValue < 600) {}
visage = 6 ; surprise
}
Si (éclairement > 70
){
newOutputValue = map(analogRead(sensorPin), 0, 1023, 0, 600) ; lire la valeur de la sonde :
newOutputValue = contraindre (newOutputValue, 0, 600) ;
while((ABS(Map(analogRead(sensorPin), 0, 1023, 0, 600)-newOutputValue)) < 50) {}
Si (visage! = 5 & & visage! = 6 & & visage! = 1) {}
visage-= 1 ;
faceswitch() ;
while((ABS(Map(analogRead(sensorPin), 0, 1023, 0, 600)-newOutputValue)) < 50) {}
Delay(1000) ;
}
Serial.println (« change de visage ») ;
}
Si (visage == 5) {}
visage-= 2 ;
faceswitch() ;
while((ABS(Map(analogRead(sensorPin), 0, 1023, 0, 600)-newOutputValue)) < 50) {}
Delay(1000) ;
}
Serial.println (« changement de colère ») ;
}
}
}
Si (hallValue < 5) {}
newOutputValue = map(analogRead(sensorPin), 0, 1023, 0, 600) ; lire la valeur de la sonde :
newOutputValue = contraindre (newOutputValue, 0, 600) ;
while((ABS(Map(analogRead(sensorPin), 0, 1023, 0, 600)-newOutputValue)) < 50) {}
Si (visage! = 5 & & visage! = 6 & & visage! = 1) {}
visage-= 1 ;
faceswitch() ;
while((ABS(Map(analogRead(sensorPin), 0, 1023, 0, 600)-newOutputValue)) < 50) {}
Delay(1000) ;
}
Serial.println (« change de visage ») ;
}
Si (visage == 5) {}
Serial.println (« changement de colère ») ;
visage-= 2 ;
faceswitch() ;
while((ABS(Map(analogRead(sensorPin), 0, 1023, 0, 600)-newOutputValue)) < 50) {}
Delay(1000) ;
}
}
}
}
}