友情提示:380元/半年,儿童学编程,就上码丁实验室。
今天要做的就是投篮机,先放今天的主角。
下方是接线配置图:
所需材料
Arduino uno
面包板
超音波感测器
SG90-服务马达
杜邦线公对母(至少15條)
省钱极致版
Arduino uno ->Arduino pro mini
面包板 ->可以不用(用焊接)
超音波感测器 ->改用其他方式触发 EX:极限开关
SG90 ->只用led表示有触发 0<价钱<1
杜邦线公对母(至少15条) ->找不要的电线
制作方法
先拿一個桶子,接著把超音波感測器固定在桶子邊緣
(如果怕感測器被打壞可以在桶子上鑽洞把超音波感測器移到桶子外)。
把sg90固定在桶子的左邊或右邊(投進球時轉動90度)。
插好零件後可以整理一下(整理排線可以順便檢查有沒有插錯)!
运作原理
如果感測到球就讓sg90轉動和讓led燈閃爍,超音波感測器是用來測距離的,所以球投進時超音波感測器感測到的距離會縮短。(因為每個人的桶子都不同所以CODE可能要做一些修改)。
Arduino代码
#include <Servo.h>
intledPin = 7;
Servo myservo;
voidsetup()
{
pinMode(ledPin, OUTPUT);
myservo.attach(9);
Serial.begin(9600);
}
voidloop()
{
inta;
a=Ping(8);
Serial.println(a);
if(a<70)
{delay(200);
myservo.write(90);
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
else
{
delay(200);
myservo.write(180);
delay(100); }
}
longPing(long pingPin) {
longduration, cm;
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH);
return cm = duration / 2.9 / 2;
}
完成的样子