Étape 2: Le Code
{{{
moteur
#include < Servo.h >
Servo servo ;
int servoP = 9 ;
angulo int = 0 ;
int anguloslow = 0 ;
int compteur = 0 ;
int counterslow = 0 ;
les mouvements int = 0 ;
Piezo
int piezopin = 11 ; Sélectionnez l’entrée pin pour le haut-parleur
potentiomètre
int potPin = 2 ; Sélectionnez l’entrée pin pour le potentiomètre
int val = 0 ; variable pour stocker la valeur provenant de la sonde
void setup() {}
Piezo
pinMode(piezopin,OUTPUT) ;
initialiser la communication série (pour le débogage uniquement) :
Serial.Begin(9600) ;
}
void loop() {}
joue un son et se déplace selon le potentiomètre. Potentiomètre retourne un nombre entre 0 et 1023
Val = analogRead(potPin) ; lire la valeur de la sonde
pour (int i = 0; i < 5; i ++) {}
Val = analogRead(potPin) ; lire la valeur de la sonde
les cartes valeur pot à angulo (10 à 50)
Val = carte (val, 0, 1023, 20, 50) ;
Serial.println(Val) ; imprimer le potentiomètre (pour le débogage uniquement)
compteur = random(2,6) ;
Angulo = val ;
se déplace selon : angulo, normalement 10-50. compteur : combien de fois va et vient, rormally 3-6. servoP est le code pin
moveit(Angulo,Counter,servoP) ;
rend le son selon : intensité, varie : normalement 5. nombre de fois : combien de fois tweets, rormally 3-6
highChirp(5,angulo/10) ;
Delay(100) ;
lowChirp(angulo*4,2) ;
Delay(100) ;
Tweet(Counter,2) ;
le délai entre les tweets de plus près
Delay(400) ;
}
délai général après une série de tweets
Delay(Random(20000)) ;
}
moveit Sub (int anglefin, int servoPin, int mouvements) {}
servo.Attach(servoPin) ;
pour (int i = 0; i < mouvements; i ++) {}
numériser à partir de 0 à 180 degrés
pour (int angle ; angle < anglefin ; angle ++)
{
servo.Write(angle) ;
Delay(Random(5)) ;
}
maintenant numériser à partir de 180 à 0 degrés
pour (angle int = anglefin ; angle > 0; angle--)
{
servo.Write(angle) ;
Delay(Random(5)) ;
}
}
servo.Detach() ;
}
void highChirp (int intensité, int chirpsNumber) {}
int i ;
int x ;
pour (veces int = 0; veces < = chirpsNumber ; veces ++) {}
pour (i = 100; i > 0; i--)
{
pour (x = 0; x < intensité ; x ++)
{
digitalWrite (piezopin, HIGH) ;
delayMicroseconds (i) ;
digitalWrite (piezopin, basse) ;
delayMicroseconds (i) ;
}
}
}
}
void lowChirp (int intensité, int chirpsNumber) {}
int i ;
int x ;
pour (veces int = 0; veces < = chirpsNumber ; veces ++) {}
pour (i = 0; i < 200; i ++)
{
digitalWrite (piezopin, HIGH) ;
delayMicroseconds(i) ;
digitalWrite(piezopin,LOW) ;
delayMicroseconds(i) ;
}
pour (i = 90 ; j’ai > 80; i--)
{
pour (x = 0; x < 5 ; x ++)
{
digitalWrite (piezopin, HIGH) ;
delayMicroseconds (i) ;
digitalWrite (piezopin, basse) ;
delayMicroseconds (i) ;
}
}
}
}
tweet Sub (intensité int, int chirpsNumber) {}
int i ;
int x ;
chirpsNumber normale 3, intensité normale 5
pour (veces int = 0; veces < chirpsNumber ; veces ++) {}
pour (int i = 80 ; j’ai > 0; i--)
{
pour (int x = 0; x < intensité ; x ++)
{
digitalWrite (piezopin, HIGH) ;
delayMicroseconds (i) ;
digitalWrite (piezopin, basse) ;
delayMicroseconds (i) ;
}
}
}
Delay(1000) ;
}
}}}