Questions tagged «arduino-uno»

Arduino Uno是最常见的Arduino开发板。它基于ATmega328P微控制器。

5
Arduino如何输出特定的(即56 kHz)载波频率?
我正在研究一个自由空间光学项目,以在两点之间无线发送数据。为了实现这一点,我使用了连接到Arduino Uno的IR LED,该信号以发射器的56 kHz载波频率脉动,而第二个Arduino以接收器的56 kHz红外探测器模块脉动。 我尝试在引脚高电平和引脚低电平命令之间使用delayMicroseconds()来创建载波频率。这种工作方式有效,但是频率并不总是相同,脉冲信号的任何其他延迟(即调用函数和递减所需的时间)都可以改变它。 阅读ATmega328的数据表,似乎可以使用芯片的定时器来设置更精确的脉冲。这是否可能,如果可以,如何使用计时器创建一个56 kHz的脉冲?

2
Arduino Uno有两个晶体吗?
看一下这张照片: 我认为大多数人都同意板上(红色)上的“大银色”东西是Arduino著名的16 MHz晶体。直到最近我才相信这一点。 我很无聊,所以我看了看我的Arduino Uno,发现它看起来像是另一个晶体(黄色)。看起来像Pro Mini上的那个。它也位于XTAL引脚附近。在我第二次检查原理图之后,板上似乎也有两个晶体。 这两个中的哪一个实际上连接到XTAL引脚,为什么有两个?

10
在Arduino中以不同方式(最快)计算正弦(和余弦)
我正在使用Arduino Uno开发板来计算系统角度(机械臂)。使用ADC的整个范围,角度实际上是ADC的10位值(0至1023)。我只会在第一象限(0至90度)中操作,正弦和余弦均为正,因此负数没有问题。我的疑问可以用3个问题来表达: 在Arduino上计算这些三角函数有哪些不同的方法? 什么是最快的方法? Arduino IDE中有sin()和cos()函数,但是Arduino如何实际计算它们(例如它们是否使用查找表或近似值等)?它们似乎是一个显而易见的解决方案,但是在尝试之前,我想知道它们的实际实现。 PS:我对Arduino IDE上的标准编码和汇编编码以及未提及的任何其他选项都开放。我也没有错误和近似的问题,这对于数字系统是不可避免的。但是,如果可能的话,最好提一下可能的错误程度

4
如何从arduino迁移到物理原型
我一直在阅读有关从Arduino迁移到PCB的信息,这似乎有些令人生畏。现在,我真正想做的只是拿走我已经建立的东西,并进行一些更改,以便实际上可以为它创建一个外壳,并确保一切保持连接。 我已经附上了我的项目的照片。我想要做的是创建一个盒子,盒子里有4个按钮,旁边有LED。我可能会为按钮和LED所在的空间创建泡沫板切口。按钮和LED的布线以及arduino本身和伺服电机都需要隐藏在泡沫板下方,这是我被卡住的地方。 我该怎么做才能实质上“加长”按钮和LED的电线,并确保所有组件都固定在面包板上(特别是按钮会弹出)?有没有一种方法可以在不制造PCB的情况下进行?我了解将组件焊接到原型板上的概念,但是就切割/印刷电路或其他方面而言,这确实让我感到困惑。 我将不胜感激。如果您也发现我的接线设置有任何问题,我也希望您能从中获得学习经验。谢谢!

2
Arduino ADC参考电压(如果由电池供电)
我正在寻找可能使用其ADC监控Arduino的电池电量的方法。这非常简单明了(尤其是在使用Arduino API的情况下);但是,如果电池为Arduino供电并且外部不受控制,那么ADC参考电压是否会随电池不断下降?换句话说,即使电池电压实际上降低了,ADC值也不会始终读取相同的值(最大值)吗? 在这种情况下,测量电池电压既低效又毫无意义。

4
pulseIn的工作是什么?
我有一个从现场找到的超声波传感器的代码。这是代码: #define trigPin 12 #define echoPin 13 void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { int duration, distance; digitalWrite(trigPin, HIGH); delayMicroseconds(1000); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; if (distance >= 200 || distance <= 0){ Serial.println("Out of range"); } else …

1
Arduino电源自动选择逻辑会短路稳压5V和USB 5V吗?
从Arduino UNO r3的参考设计中,我发现如果Vin低于6.6V,USBVCC将通过mosfet T1连接到+ 5V。如果Vin刚低于6.6V,这两个源极不会短路吗?稳压器U1(NCP1117)的数据表中提到5V版本的输入范围低至6.5V。 在研究是否可以同时通过USB和5V引脚为arduino供电时会想到这个问题。有许多警告不要这样做,有些人则表示可以。我意识到如果未连接Vin / PWRIN或低于6.6V /〜7.3V,这将使USB 5V与我的外部5V短路,但是考虑到这可能是设计使然(如果上述理论正确),这是多么糟糕的事情。 )?

5
直接从Arduino数字引脚直接连接继电器的原因
在研究了通过Arduino控制继电器的各种原理图之后,我注意到,在大多数情况下,晶体管用于将单独的电源切换到继电器线圈中,而不是直接为继电器提供I的5伏输出。 Arduino的/ O引脚。例如,我有一个5伏的DPDT继电器和一个小型的直流电动机。我想使用Atmel328处理器直接从Arduino UNO(SMD克隆)驱动两者吗?进行下去是否明智? 如果不是(很可能): 有人可以提供详细的解释,还可以就当前的限制和内容提供重要的警告吗? 如何在不冒险接触Arduino的情况下控制此类组件?有哪些常用的方法可以做到这一点? 哪些其他设备通常会以类似方式损坏Arduino板(或任何微控制器单元)? 我只是一个初学者,他要非常谨慎。谢谢。

2
内部和外部电阻的性能
在与内部上拉电阻/外部上拉/下拉电阻连接的按钮之间是否存在重大的性能折衷?我看到很多教程演示了在连接一个简单的按钮(例如this和this)时使用外部电阻的方法。但是,由于阿尔杜伊诺/ AVR包括内部上拉电阻,可以连接一个按钮而没有任何外部电阻所证明这里。 是否有充分的理由使额外的电阻器使您的设计复杂化?

2
使用I2C刻录草图
确实不是一个纯粹的Arduino问题。我实际上正在使用独立的ATmega168。到目前为止,我一直在使用AVR-ISP编程器(在AVR Studio中工作)对芯片进行编程。完成所有操作后,芯片将被覆盖,我将只能访问I2C引脚。MISO,MOSI等引脚将无法连接。 我只是想知道是否有一种方法可以使用I2C引脚来更新芯片上刻录的程序。我不需要再次刻录引导加载程序,而仅在需要时更新程序。

2
Arduino中断(引脚更改)
我使用中断函数将接收自的值填充到数组中digitalRead()。 void setup() { Serial.begin(115200); attachInterrupt(0, test_func, CHANGE); } void test_func(){ if(digitalRead(pin)==HIGH){ test_array[x]=1; } else if(digitalRead(pin)==LOW){ test_array[x]=0; } x=x+1; } 问题是当我打印时,test_array会有诸如:111或的值000。 据我了解,如果我CHANGE在attachInterrupt()函数中使用该选项,则数据序列应始终0101010101不重复。 由于数据来自无线电模块,因此数据变化非常快。
8 arduino-uno  c  isr 

1
如果Arduino Uno只有6个数字PWM引脚,如何支持多达12个伺服器?
根据此: 伺服库在大多数Arduino板上最多支持12个电机,在Arduino Mega上最多支持48个电机。在Mega以外的板上,使用该库会禁用引脚9和10上的AnalogWrite()(PWM)功能,无论这些引脚上是否有Servo。在Mega上,最多可以使用12个伺服器,而不会影响PWM功能。使用12到23个电机将禁用引脚11和12上的PWM。 然而,根据此: 数字I / O引脚14(其中6个提供PWM输出) 那么,如果Uno只有6个可提供PWM输出的数字I / O引脚,那么如何控制6个以上的伺服器呢?

1
我可以在5v板上编程3.3v芯片吗?
我前一阵子买了一个Gertboard,它具有的功能之一是ATMega328(DIP)。但是,由于Gertboard是为与Raspberry Pi一起使用而设计的,因此它只能在3.3v电压下运行,因此时钟速度被限制在〜12MHz。 但是,通过Raspberry Pi对其进行编程非常麻烦。相反,我想将芯片转移到Arduino Uno板上,以便可以从台式机上载草图。然后,我将其传输回Gertboard以进行正常操作。 问题是我的Uno工作在更典型的5v / 16MHz。 尝试这样做安全吗?我是否需要在IDE中进行任何配置更改以告知它考虑不同的时钟速度?

3
是否可以使用Arduino Uno R3对Arduino Pro Mini进行编程?
我最近收到了Arduino Pro Mini的礼物,并且没有外部USB编程器来对Pro Mini进行编程。但是,我确实拥有一个Arduino Uno R3,并且我认为这是有可能的,因为它们都具有相同的时钟速度和微控制器(带有atmega328的16Mhz)。 是否可以使用Arduino Uno对Arduino Pro Mini进行编程?如果是,请问如何做?

1
SainSmart Uno克隆上的SVG引脚有哪些?
我购买了与Arduino Uno R3兼容的SainSmart克隆板。在每个标准IO引脚旁边,有一排3个额外的引脚(公)。它们排列在标记为S,V和G的列中。 可以在此图像上看到它们: 它们中的大多数都位于SainSmart和UNO徽标的正上方。可以在微处理器正下方看到与模拟引脚对应的SVG引脚。 这些别针是做什么用的?这是某些应用程序的标准格式,还是SainSmart特有的格式?

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.