Paso 2: El código
{{{
motor
#include < Servo.h >
Servo servo;
int servoP = 9;
angulo de int = 0;
int anguloslow = 0;
int contador = 0;
int counterslow = 0;
movimientos de int = 0;
piezoeléctrico
int piezopin = 11; seleccionar el pin de entrada para el altavoz
potenciómetro de
int potPin = 2; Seleccione la entrada de pin para el potenciómetro
int val = 0; variable para almacenar el valor que viene desde el sensor
void setup() {}
piezoeléctrico
pinMode(piezopin,OUTPUT);
inicializar comunicaciones en serie (para la depuración sólo):
Serial.Begin(9600);
}
void loop() {}
reproduce un sonido y se mueve según el potenciómetro. Potenciómetro de devuelve un número entre 0 y 1023
Val = analogRead(potPin); leer el valor del sensor
para (int i = 0; i < 5; i ++) {}
Val = analogRead(potPin); leer el valor del sensor
asigna valor de olla a angulo (10 a 50)
Val = mapa (val, 0, 1023, 20, 50);
Serial.println(Val); potenciómetro (para la depuración sólo) la impresión
contador = random(2,6);
Angulo = val;
se mueve según: angulo, normalmente 10-50. contador: cuántas veces va hacia adelante y hacia atrás, rormally 3-6. servoP es el pin
MoveIT(Angulo,Counter,servoP);
hace el sonido según: intensidad, varía: normalmente 5. número de veces: cuantas veces tweets, rormally 3-6
highChirp(5,angulo/10);
Delay(100);
lowChirp(angulo*4,2);
Delay(100);
Tweet(Counter,2);
retraso entre los tweets más cerca
Delay(400);
}
retraso general después de una serie de tweets
Delay(Random(20000));
}
{} void moveit (int anglefin, int movimientos, int servoPin)
servo.Attach(servoPin);
para (int i = 0; i < movimientos; i ++) {}
escanear desde 0 a 180 grados
para (int ángulo; ángulo < anglefin; ángulo ++)
{
servo.Write(Angle);
Delay(Random(5));
}
ahora análisis de 180 a 0 grados
para (ángulo int = anglefin; ángulo > 0; ángulo--)
{
servo.Write(Angle);
Delay(Random(5));
}
}
servo.Detach();
}
{} void highChirp (int intensidad, int chirpsNumber)
int i;
int x;
para (int veces = 0; veces < = chirpsNumber; veces ++) {}
para (i = 100; i > 0; i--)
{
para (x = 0; x < intensidad; x ++)
{
digitalWrite (piezopin, HIGH);
delayMicroseconds (i);
digitalWrite (piezopin, bajo);
delayMicroseconds (i);
}
}
}
}
{} void lowChirp (int intensidad, int chirpsNumber)
int i;
int x;
para (int veces = 0; veces < = chirpsNumber; veces ++) {}
para (i = 0; i < 200; i ++)
{
digitalWrite (piezopin, HIGH);
delayMicroseconds(i);
digitalWrite(piezopin,LOW);
delayMicroseconds(i);
}
para (i = 90; i > 80; i--)
{
para (x = 0; x < 5; x ++)
{
digitalWrite (piezopin, HIGH);
delayMicroseconds (i);
digitalWrite (piezopin, bajo);
delayMicroseconds (i);
}
}
}
}
{} void tweet (intensidad de int, int chirpsNumber)
int i;
int x;
chirpsNumber normal 3, intensidad normal 5
para (int veces = 0; veces < chirpsNumber; veces ++) {}
para (int i = 80; i > 0; i--)
{
para (int x = 0; x < intensidad; x ++)
{
digitalWrite (piezopin, HIGH);
delayMicroseconds (i);
digitalWrite (piezopin, bajo);
delayMicroseconds (i);
}
}
}
Delay(1000);
}
}}}