用Arduino打造会调酒的机器人

易心STEAM编程
关注

完成后的视频如下

只要调整下面的程序代码,就可以调出各种不同浓度、烈度的饮料。另外,这个装置也能调制超过一种饮料,例如按不同的按钮就可以调出不一样的饮料。

程序代码及说明

*/

#define Rum 1 // (1号水泵)12VDC马达连接1号脚位,打入兰姆酒

#define LED8 8 // (1号水泵)LED显示兰姆酒打入状况

#define Curacao 2 // (2号水泵) 柑香酒连接 2号脚位

#define LED9 9 // (2号水泵)LED显示柑香酒打入状况

#define Orgeat 3 // (3号水泵)连接 3号脚位

#define LED10 10 // 3号水泵上的LED连接到10号脚位

#define Grenedine 4 // (4号水泵)连接 4号脚位

#define LED11 11 // 4号水泵上的LED连接到11号脚位

#define PineLime 5 // 5号水泵连接菠萝与莱姆汁

#define LED12 12 // 5号水泵上的LED连接到12号脚位

#define doorbell 13 // 用门铃启动开关

#define pump6 6 // 6号脚位连接大型潜入式水泵

int strobe=100; // 控制LED闪烁速度

int sensorPin = A0; // 模拟读取:用来侦测是否有按压门铃开关

int sensorValue = 0;  // 如果读取到门铃值,会写入这里

void setup()

{

pinMode(Rum, OUTPUT);

pinMode(LED8, OUTPUT);

pinMode(Curacao, OUTPUT);

pinMode(LED9, OUTPUT);

pinMode(Orgeat, OUTPUT);

pinMode(LED10, OUTPUT);

pinMode(Grenedine, OUTPUT);

pinMode(LED11, OUTPUT);

pinMode(LED12, OUTPUT);

pinMode(doorbell, INPUT);

pinMode(pump6, OUTPUT);

digitalWrite (LED8, LOW); // 1号LED亮

digitalWrite (Rum, HIGH); // 关闭1号水泵

digitalWrite (LED9, LOW);

digitalWrite (Curacao, HIGH); // 关闭3号水泵

digitalWrite (LED10, LOW);

digitalWrite (Orgeat, HIGH); // 关闭3号水泵

digitalWrite (LED11, LOW); // 关闭4号水泵

digitalWrite (PineLime, HIGH); // 关闭4号水泵

digitalWrite (LED11, LOW);

digitalWrite (Grenedine, HIGH);// 关闭5号水泵

digitalWrite (pump6, HIGH);// 关闭6号水泵

delay(1000); // 让继电器在开始运行前准备就绪

}

void loop()   // 这部分的程序代码会持续循环

{

sensorValue = analogRead(sensorPin);

// 这个部分是在让LED闪闪发亮,这样机器人看起来会比较酷

// 闪灯在按下开始钮的时候会停止

// 按下按钮时,LED会显示在运转的马达

digitalWrite (LED8, HIGH); // 开启8号脚位的LED

delay(strobe);         // 控制LED闪烁速度

digitalWrite (LED8, LOW); // 关闭8号脚位的LED

delay(strobe);

digitalWrite (LED9, HIGH); // 开启9号脚位的LED

delay(strobe);

digitalWrite (LED9, LOW); // 关闭9号脚位的LED

delay(strobe);

digitalWrite (LED10, HIGH); // 开启10号脚位的LED

delay(strobe);

digitalWrite (LED10, LOW); // 关闭10号脚位的LED

delay(strobe);

digitalWrite (LED11, HIGH); // 开启11号脚位的LED

delay(strobe);

digitalWrite (LED11, LOW); // 关闭11号脚位的LED

delay(strobe);

digitalWrite (LED12, HIGH); // 开启12号脚位的LED

delay(strobe);

digitalWrite (LED12, LOW); // 关闭12号脚位的LED

delay(strobe);

sensorValue = analogRead(sensorPin);

if(sensorValue < 300){

digitalWrite (LED8, HIGH); // 1号LED开启

digitalWrite (Rum, LOW); // 1号水泵开启

digitalWrite (LED9, HIGH);

digitalWrite (Curacao, LOW); // 2号水泵开启

digitalWrite (LED10, HIGH);

digitalWrite (Orgeat, LOW); // 3号水泵开启

digitalWrite (LED11, HIGH);

digitalWrite (Grenedine, LOW);// 4号水泵开启

delay(8000);       // 等待8秒钟打出1/4盎司液体

digitalWrite (LED10, LOW); // 关闭杏仁糖浆LED P3

digitalWrite (Orgeat, HIGH);   // 关闭杏仁糖浆水泵 P3

digitalWrite (LED11, LOW);   // 5号帮浦LED关闭

digitalWrite (Grenedine, HIGH); // 4号水泵关闭

delay(8000);     // 等待8秒钟打出1/4盎司液体

digitalWrite (Curacao, HIGH);   // 关闭柑香酒水泵 2号

digitalWrite (LED9, LOW); // 关闭柑香酒LED 2号

// 这个时候,柑香酒开关开启共16秒,送出1/2盎司。

delay(16000);   // 等待8秒钟打出1/4盎司液体

digitalWrite (LED8, LOW); // 关闭1号水泵 LED

digitalWrite (Rum, HIGH);   // 关闭1号水泵(兰姆酒)

digitalWrite (pump6, LOW);   // 开启菠萝汁水泵(6号水泵)

//digitalWrite (PineLime, LOW); // low 打开继电器,打开水泵

delay(2500); // 延迟4秒,送出菠萝汁。

digitalWrite (pump6, HIGH);     // 关闭菠萝汁水泵(6号水泵)

//digitalWrite (PineLime, HIGH); // 关闭菠萝汁继电器

看完这篇文章后,希望你也可以打造自己的机器人,其实装置本身跟电子组件的部分不难,是很适合新手学习 Arduino、程序编写和电子组件的专题。

作者:Ted Kinsman

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存