gada888 发表于 2019-1-12 15:35:51

猪年小猪送吉

猪年年关快要到了。先祝大家新年愉快。这个项目是用一个arduino uno来主控,通过小猪头上的超声模块来探测前方物体。如果探测到了。就通过DFPlayer mini MP3模块来说话。并且小猪为表示愉快,还会通过伺服电机来摇头晃脑。而且随着PING前方物体的向前的移动,MP3会回以不同的问候语句。




首先这个连线图上的连线是要调整的。原因是我用的那个连线图工具,不能自由的改连线的接脚。大家看我改过的图。
/*---------Made by Gada888 2019-01-10------*/
//-----------IMPORT LIB-----------
#include <Servo.h>
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
//--------INICIALIZE----------
Servo myServo;
int pos = 0;
int trig = 2;
int echo = 3;
//--------------SETUP-------------
void setup () {
Serial.begin (9600);
   myServo.attach(9);
   pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
mp3_set_serial (Serial);
mp3_set_volume (25);
}
//-------------LOOPING------------
void loop () {

int duration , distance;
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = (duration / 2) / 21.9;
Serial.print(distance);
Serial.print("cm");
delay(50);
if (distance < 3)
{      
mp3_play (1);
delay (2000);

{
}
}
else if ((3 < distance) && (distance < 6))
{
mp3_play (2);
delay (2000);
}
else if ((6< distance) && (distance < 9))
{
mp3_play (3);
delay (2000);
   myServo.write(30);
delay (500);
   myServo.write(-30);
delay (500);
   myServo.write(30);
delay (500);
   myServo.write(-30);
delay (500);
   myServo.write(30);
delay (500);
   myServo.write(-30);
delay (500);
}
else if ((9 < distance) && (distance < 12))
{
mp3_play (4);
delay (1000);
myServo.write(30);
delay (500);
   myServo.write(-30);
delay (500);
   myServo.write(30);
delay (500);
   myServo.write(-30);
delay (500);
   myServo.write(30);
delay (500);
   myServo.write(-30);
delay (500);
}
}


https://v.youku.com/v_show/id_XNDAwOTQxNjEwNA==.html?spm=a2h3j.8428770.3416059.1



页: [1]
查看完整版本: 猪年小猪送吉