电子产品都是用Arduino Uno和Adafruit电机防护罩。
这是我想要的工作的基本思路:
-
当机组开启,步进电机运行架到左边的限位开关被触发。这集的<em>位置</em>为零。步进电机再运行架向前直到1以小时面板和00以分钟面板。
-
曾经的小时和分钟的中心,架向前的时间。全位置移动的底部全速每5分钟,和全位置移动上的每一个小时。
-
瞬时开关(引脚6-7)移动架了一个位置(约147步),然后继续计时时钟。
-
小时和分钟走势有计数器,把酒吧回到左限位开关和复位到零次小时已经过去,12,和55分钟过去。
我还不清楚我到底需要做代码。我找到了工作在理论上与下面的代码了randofo。此代码将分杆向前一步每200毫秒(我认为)一个限位开关的触发。它的作品,但我很快从我的深度过去我在这里做的基本工作。这似乎是一个精明的Arduino用户一个相当简单的问题,但我只能做一个项目,一个是一年一次,每一次我做的,我已经基本上忘记了我在过去的项目中吸取的一切。
<P> / ************************************************************* </P >
电机步进演示
盾Randy Sarafan
更多信息见:
< a href =“http:/ / www.instructables。COM /身份证/ Arduino电机屏蔽教程/”>
https: / / www.instructables。COM /身份证/ Arduino电机石…< /
************************************************************* /
#包括<<丝。”
#包括<< adafruit_motorshield。H >
#包括“效用/ adafruit_ms_pwmservodriver。”< / adafruit_motorshield。H > < /线。”
//创建电机屏蔽对象的默认的I2C地址
adafruit_motorshield AFM = adafruit_motorshield();
/或者,创建了不同的I2C地址(称之为叠加)
/ adafruit_motorshield AFM = adafruit_motorshield(;
/ /连接步进电机每转200步(1.8度)
/电机端口# 2(M3和M4)
adafruit_steppermotor * mymotor1 =原子力显微镜。getstepper(300、1);
adafruit_steppermotor * mymotor2 =原子力显微镜。getstepper(300;
国际delaylegnth = 7;
无效setup() {
/启动串行连接
系列。开始(9600);
/ /配置PIN2码作为输入,使内部的上拉电阻
pinmode(2,input_pullup;
/ /串口。开始(9600);//设置串口库在9600个基点
串行out.println(“步进测试!”);
原子力显微镜。begin();与默认频率1.6khz
/创造/原子力显微镜。开始(1000);/ /或与一个不同的频率,说1khz
mymotor1 -> setspeed(100);/ / 10转
}
无效loop() {
/读取按键值到一个变量
int sensorval = //读出数字接口的值(2);
sensorval = =低;
int delayl = 200;
如果(sensorval = =低){
串行out.println(“分钟+ +”);
/ mymotor1 ->步骤(1640,落后,双);
为(int i = 0;i < = 10;i++){
mymotor1 ->步骤(147,落后,双);
/值(pwmpin,I);
延迟(delayl);
}
println(
系列。“小时+ +”);
mymotor1;
/ / mymotor2 ->步骤(1600,落后,双);
mymotor2 ->步(220、前进、双);
/延迟(delayl);
/ /串行out.println(“双线圈的步骤”);
mymotor1 ->步(0、前进、双);
mymotor1 ->步骤(0,落后,
双);