Questions tagged «arduino»

一定要使用Arduino Stack Exchange来解决更多关于Arduino和更少电子产品的问题。

4
电机推子PID控制
我正在尝试使用Arduino控制电动推子(线性滑动电位器)。 PID控制为“跳到”特定的目标位置提供了良好的结果,但是跟踪斜坡是一个问题,它一点也不平滑。不管我尝试什么,运动都非常生涩。 这是跟踪斜坡时参考位置,测量位置和电机输出的曲线图: 这是相同测试的视频。 在商业系统上,看起来更平滑,请参阅此。 详细信息: 电机推子是Alps RSA0N11M9A0K。为了驱动它,我使用的是ST L293D H桥,由稳定的10 V DC电源(XL6009)供电。 在Arduino UNO(ATmega328P)上,我使用的是引脚9和10,其PWM频率为31.372 kHz,无法听到(Timer1的预分频比为1 TCCR1B = (TCCR1B & 0b11111000) | 0b001)。 电位计连接在地和5V之间,抽头与往常一样进入ADC0。 控制器: 我使用的是具有防饱和功能的简单PID控制器,其更新速率为1 kHz(Ts = 1e-3 s): float update(int16_t input) { int16_t error = setpoint - input; int16_t newIntegral = integral + error; float output = k_p * …

9
我将如何获得一个运行在31,891,269,116 µHz的小型振荡器?
我正在寻找为Mars时间运行的Arduino构建RTC模块。转换因子是1.0274912510地球秒至1火星秒。 虽然我设法通过<2秒的分辨率(不是很理想,我更喜欢300 ms的精度)以编程方式完成此任务,但在连接到常规RTC模块的Arduino Uno上使用定点数学想知道是否有可能在正好31,891,269,116 µHz(31.891269116 kHz)下运行某种低压振荡器,该振荡器或多或少可以与标准的32 kHz时钟晶体互换(但是,我会接受其他想法)只要它们不算贵的话。) 任何想法这怎么可能?或者,也可以接受某种计时器,该计时器每1.0274912510秒关闭一次。
15 arduino  timer 

6
PID算法:长时间延迟后如何考虑快速的输入值变化
我正在尝试在Arduino Leonardo上实现基本的PID算法,以使用伺服控制阀将冷热水混合。目的是使温度尽可能接近设定值。尤其重要的是防止输出温度超过设定值,以保护用户免遭灼伤。其次重要的是尽快使温度接近设定点。 对于较小的温度变化,PID算法的标准实现似乎可以正常工作。但是我不知道如何解决在等待热水到达阀门时可能出现的长时间延迟,因为这些延迟比更改阀门位置后的标准延迟长得多。 显然,取决于热水管线的长度和自上次使用热水以来的时间,热水到达阀门需要花费数十秒的时间,因此在此期间,水温在低温下保持相当恒定热水阀很快就会打开100%。积分分量开始累积较大的误差值。 当热水最终到达阀门时,检测到的温度会迅速上升到最高热水温度。由于较大的积分误差,温度超过设定值后,由于等待积分值降低到正常水平,热水阀长时间保持在100%。因此,结果是几秒钟(数十秒)的最高温度水。 我不确定如何解决这种可能的长时间延迟。在这种情况下,为了限制最大响应时间,在积分误差值上设置一个上限(和下限)是否明智?这似乎无法达到积分部分的目的,并且在达到设定值后仍会出现一定的滞后。 还是有更好的方法来处理长时间的延迟后快速的输入变化? 感谢您的任何建议!

5
交流线中的火花导致Arduino重置/挂起
这是我最近一直在从事的项目的PCB设计(我的第一个PCB设计)。 这个想法是在没有继电器的情况下控制交流设备(风扇,灯泡等)。我使用的三端双向可控硅开关元件在这些应用中比继电器更好。我正在使用光电隔离器来与交流线路完全隔离。我尝试使用连接到笔记本电脑(未插入充电器)的USB电缆以及壁式适配器(12V)运行arduino。 起初,电路似乎工作正常。我能够使用UART将代码转储到控制器和控制灯泡中(打开/关闭以及使其变暗)。我通过UART发送命令。但是,似乎只要交流线路上有火花(当我插入/拔出风扇)时,微控制器都不会感到高兴。有时它会重置(这是图片的更好部分),而其他时候它会挂起,而我无法通过UART发送命令。我不确定烧录的代码是否也会受到影响,但是有时我不得不重新上传代码。如果我打开/关闭其他房间的风扇,则没有任何效果。 可能的问题: 1)PCB上没有接地层。 2)由于火花引起的某种EMI。 我还尝试以与风扇相同的方式插入热水器(800瓦电阻负载),但没有任何反应。因此,我认为正是电感性负载带来了问题。 对于该问题的任何建设性解决方案将非常可取。 谢谢。

2
如何使用我的SMD Arduino来编程单独的DIP ATmega328?
我有一个带有表面贴装(SMD)微控制器的arduino: 我知道如何将DIP arduino用作DIP ATmega328的程序员。这很容易-您只需将微控制器放入支架即可。 但是,对于表面贴装的Arduino来说,这并不明显。拆焊微控制器是一种方法,但这是棘手的且具有破坏性。 我可以使用此Arduino作为DIP ATmega328的程序员而不会严重损坏开发板吗?如果是这样,怎么办?

3
如何在ATMega328P上配置未使用的I / O引脚以实现最低功耗?
我试图在我创建的Arduino板上尽可能降低功耗。未使用的输入引脚应如何配置?已经有一些答案(在这里,在这里),但是我正在寻求ATMega328P的特定功能。 将引脚设置为输入,将引脚驱动为高电平以进行内部上拉 将引脚设置为输入,将引脚驱动为低电平 将引脚设置为输入,外部上拉 将引脚设置为输入,外部下拉 将引脚设置为低输出 将引脚设置为高输出 将引脚设置为输出低电平,外部下拉
15 arduino 


5
使用Arduino或PC控制电源插头的简单安全的解决方案
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为电气工程堆栈交换的主题。 6年前关闭。 有什么解决方案可用于控制电源插头(或什至可能有电插座),即打开和关闭电源? 我一直在寻找xbee / zigbee解决方案,但似乎没有针对欧洲电源插座的解决方案(甚至对于美国插座也很少有解决方案)。 包括Arduino在内的有线解决方案对我来说还可以。我希望它易于使用(至于zigbee,我可以学习如何使用它)并且安全(我不想连接或焊接东西,因为它是240V,我不希望这有任何风险)电气安装)。
15 arduino  relay  xbee  zigbee 

7
如何测量车轮的RPM?
我正在尝试使用Arduino或Lilypad板为自行车制作一个车载系统。 我认为我应该使用霍尔效应传感器,但是任何替代方法也都不错。 我想将速度输出到LCD显示屏,但我想知道解决此问题的最佳方法。

5
将Arduino连接到人体是否安全?
我想创建一个使用Arduino收集和显示ECG数据的项目。它使用两个连接到身体(在胸部)的电极。然后,信号通过运算放大器传输到Arduino ADC引脚。Arduino仅连接到PC。这样连接人板和Arduino板是否安全? 我应该采取一些安全措施吗?

4
芯片上的焊桥是否总是不好?
我刚刚买了我的Arduino以太网屏蔽罩—一副仿冒品,价格是10美元,而不是60美元。我已将其连接上,但它不起作用– LED点亮但不闪烁,并且未建立以太网链接(以太网交换机不点亮,无法ping等)。就像Arduino无法与开发板通信一样。 试图找出原因,仔细观察,似乎Wiznet芯片上的焊接混乱,并且桥接了几组引脚。这可能是我问题的根源,还是可以有目的地这样做?

2
AnalogRead(0)或AnalogRead(A0)
arduino参考说明您将使用以下代码从模拟引脚5读取值: int val1 = analogRead(5); 但是,要从数字引脚5进行读取,您需要将相同的引脚号传递给digitalRead: int val2 = digitalRead(5); 您不应该使用analogRead(A5)代替analogRead(5)吗? 如果没有,那么以下代码会做什么: int val3 = analogRead(A5);

2
针13:我需要电阻吗?
这个问题提到引脚13有一个内置电阻,用于大多数Arduino单元的标配LED。我的一个朋友告诉我,由于该引脚上已经有一个电阻,所以当我将一个外部LED插入该引脚时,我不必放一个电阻。 这并不适合我,因为我到处都读到,插上没有限流电阻的LED 非常不好。我找不到电路图上第13针的位置(仍然习惯于阅读这些引脚),所以我不知道内置电阻器的接线方式。 简而言之,当(小)LED使用引脚13时,是否需要一个限流电阻? 编辑:正如Polar在下面指出的那样,一个电阻就能解决问题。但是,我对于这个单个(内置)电阻的位置真的很好奇。如果它与P13的插头串联,则应该限制电流。如果是并行的,我不这么认为。但是,我的电子知识不是那么广泛,所以我可能会误会...
14 arduino  hardware  pins 

5
如何检测软件中的哪个arduino板(或哪个控制器)?
我有一个项目想要在Uno或Mega(甚至是Due)上工作,如果我不需要两个版本的软件,那就太好了。例如,在Mega上,要使用SoftwareSerial,必须使用与Uno上不同的引脚。请参阅有关软件序列号的文档。无论如何,最好检测到我正在使用Uno,所以我可以仅将针脚4和5用于TX / RX,如果我使用的是Mega,软件将检测并仅使用针脚10和11(以及当然,我必须以不同的方式进行连接,但至少软件是相同的)。
14 arduino 

5
如何从Arduino读取当前程序?
我购买了带有ATmega2560的Arduino PCB,该芯片已使用Arduino引导加载程序和某些程序进行了编程。我确实有草图,但是在摆弄它之前,我想备份控制器中的当前二进制文件。和大多数Arduino一样,它使用连接到TX0和RX0的USB串行转换器连接到PC,并且没有ISP接口。 显然,可以在Arduino引导加载程序中读取代码,但是由于Arduino IDE中没有菜单项,因此我不知道使用哪种工具来访问它。 我需要什么软件才能从Arduino读取程序?
14 arduino 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.