我用Arduino UNO的板子进行红外遥控的时候,之前写的程序是没有问题的,中间因为电脑系统出问题重新装了系统和软件,导致红外遥控的程序一编译就出错, 然后在IRremoteTools.cpp中定义一个TKD2 ; int TKD2; 然后编译出错如下 请求支援
给位大神: 小弟自己画了一块arduino due的板子。MAGE16U2固件已经烧下去了。在IDE上面可以找到串口。但是我在IDE里面 下载程序是有:no device find on com5这个错误。请问是什么原因?谢谢
各位大神,小弟想做一个小滚轮系统,用于做生物学实验,不过由于小弟初学嵌入式开发,不懂编程,向各位大神求助,望大家能给我提供一个能实现这一功能的控制程序模板,先行谢过啦! 我想做的整个装置有点像跑步机,我想为小白鼠做个跑步机,来检测小白鼠的神经系统和运动能力。整个的实验过程如下:将5只小白鼠放到以2rpm低速旋转的滚轮上(各老鼠跑道相互隔离,互不干扰),然后缓慢的匀加速或者以6秒为间隔逐步加速,当滚轮达到一定速度时,某一个小白鼠会从滚轮上掉下来,掉下来的小白鼠踩在其所在跑道内的微动开关,这时需要记录以下信息,第几跑道、当前滚轮速度和滚轮加速所用的时间,并将此信息显示到OLED显示屏上。类似的其他几只老鼠会陆续掉下来,同样记录相关信息,并输出到显示屏上。 我初步想用arduino Uno R3开发板,L298N驱动器,rotary 增量型编码器,OLED显示屏等模块,小型微动开关(类似于鼠标的点按器),直流减速电机等搭建一个小的反馈系统,实现滚轮的速度调节、速度测量以及速度、时间等的显示。各自参数如下: 1.arduino Uno R3 (1).基本配制和参数 处理器 ATmega328 工作电压 5V 输入电压(推荐) 7-12V 输入电压(范围) 6-20V 数字IO脚 14 (其中6路作为PWM输出) 模拟输入脚 6 IO脚直流电流 40 mA 3.3V脚直流电流 50 mA Flash Memory 32 KB (ATmega328,其中0.5 KB 用于 bootloader) SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) 工作时钟 16 MHz (2)输入输出 14路数字输入输出口:工作电压为5V,每一路能输出和接入最大电流为40mA。每一路配置了20-50K欧姆内部上拉电阻(默认不连接)。除此之外,有些引脚有特定的功能 串口信号RX(0号)、TX(1号): 与内部 ATmega8U2 USB-to-TTL 芯片相连,提供TTL电压水平的串口接收信号。 外部中断(2号和3号):触发中断引脚,可设成上升沿、下降沿或同时触发。 脉冲宽度调制PWM(3、5、6、9、10 、11):提供6路8位PWM输出。 SPI(10(SS),11(MOSI),12(MISO),13(SCK)):SPI通信接口。 LED(13号):Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭。 6路模拟输入A0到A5:每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,可以通过AREF调整输入上限。除此之外,有些引脚有特定功能 TWI接口(SDA A4和SCL A5):支持通信接口(兼容I2C总线)。 AREF:模拟输入信号的参考电压。 Reset:信号为低时复位单片机芯片。 (3)通信接口 串口:ATmega328内置的UART可以通过数字口0(RX)和1(TX)与外部实现串口通信;ATmega16U2可以访问数字口实现USB上的虚拟串口。 TWI(兼容I2C)接口: SPI 接口: 2.L298N驱动器 产品参数: (1).驱动芯片:全新原装L298N双H桥直流电机驱动芯片 (2).驱动部分端子供电范围Vs:+5V~+35V ;如需要板内取电,则供电范围Vs:+7V~+35V (3).驱动部分峰值电流Io:2A (4).逻辑部分端子供电范围Vss:+5V~+7V(可板内取电+5V) (5).逻辑部分工作电流范围:0~36mA (6).控制信号输入电压范围: 低电平:-0.3V≤Vin≤1.5V 高电平:2.3V≤Vin≤Vss (7).使能信号输入电压范围: 低电平:-0.3≤Vin≤1.5V(控制信号无效) 高电平:2.3V≤Vin≤Vss(控制信号有效) (8).最大功耗:20W(温度T=75℃时) (9).存储温度:-25℃~+130℃ (10).驱动板尺寸:53mm*43mm (11).驱动板重量:35g (12).其他扩展:控制方向指示灯、逻辑部分板内取电接口。 驱动直流电机 由于本模块是2路的H桥驱动,所以可以同时驱动两个电机 使能ENA ENB之后, 可以分别从IN1 IN2输入PWM信号驱动电机1的转速和方向 可以分别从IN3 IN4输入PWM信号驱动电机2的转速和方向 信号如表所示: 直流电机 旋转方式 IN1 IN2 IN3 IN4 调速PWM信号 调速端A 调速端B M1 正转 高 低 / / 高 / 反转 低 高 / / 高 / 停止 低 低 / / 高 / M2 正转 / / 高 低 / 高 反转 / / 低 高 / 高 停止 / / 低 低 / 高 3.rotary 增量型编码器 型号:增量型旋转编码器,AB两相。通过旋转的光栅盘和光耦产生可识别方向的计数脉冲信号。 性能:600P/R-600脉冲每转。DC5-24V供电。最大机械转速6000转/分,响应频率:0-20KHz; 输出:AB两相输出矩形正交脉冲,电路输出为NPN集电极开路输出型。 接线输出:A相,B相,Vcc正电源,V0地。 4.OLED显示屏等模块 各引脚:VCC:3.3-5V,GND,SCL:串行时钟,SDA:串行数据 5.直流减速电机 DC: 12V 160rpm 扭矩: 0.5kg.cm 电流:0.3A
自己用328p-au做了一块板子,3.3V 8M晶振。用UNO R3烧写了mini pro 3.3V 8M的bootloader,又用CH340下载了一个控制IO口输出的小程序。都没有显示有错误。但是实测芯片的管脚没有输出。 请问,有人出现过这种情况吗? 实测8M晶振是对的。用AVRstudio写程序IO口也是可以输出的。同样的代码下载到UNOR3里也是正常工作的。 所以,现在比较怀疑的是bootloader和程序之间会有冲突却不报错吗? 谢谢!
以前玩51、STC、AVR单片机,现在玩Arduino了。于是前几日在某宝下单买了一片板子,今天中午到的。因前期已经安装好Arduino IDE了,没多想就打开封装连接上USB线,立刻看到板子上一个标着【L】的LED在闪烁,说明板子是好的~~~半分钟不到Win7自动安装好的USB转串口驱动了~~~~~ 打开Arduino IDE随即复制一个很简单的测试程序: int ledPin = 13; // void setup() { pinMode(ledPin,OUTPUT); // } void loop() { digitalWrite(ledPin,HIGH); // delay(2000); // digitalWrite(ledPin,LOW); delay(200); } 点保存---选好要保存的路径--->校验--->点工具--->板卡选 Arduino UNO,再点工具选COM口--->再点下载,一阵短暂的等待,OK,下载成功!再按一下复位键,这下遇到问题了!!!!!!原先标着【L】的LED先是短暂闪烁,烧录进去新程序后再按复位键应该执行我新写的程序吧?!现在是按复位键后板子上标着【L】的LED先短暂闪烁3、4次,然后才执行我新写入的程序。 因是第一次接触 Arduino ,对其还不了解。现手头没其它的LED元件和万用表,暂时无法断定板子是否有问题,故发本帖问下大家是否遇到过这样的情况?
我用同一个程序在Uno上看门狗能重启,在mega 2560 上就不能,但是我查了AVR的看门狗库资料上面说atmega2560的芯片能用看门狗的功能。谁知道怎么回事,或者 ARDUINO 代码 #include void setup() { pinMode(13, OUTPUT); wdt_enable(WDTO_1S); //开启看门狗,并设置溢出时间为4秒 } void loop() { digitalWrite(13, HIGH); delay(500); wdt_reset(); delay(500); digitalWrite(13, LOW); wdt_reset(); delay(500); wdt_reset(); delay(500); wdt_reset(); delay(500); wdt_reset(); delay(500); wdt_reset(); delay(500); wdt_reset(); while(1) {} }
我知道的小车转向常见的有两种方式,一种是通过舵机控制转向,另一种是通过控制两个轮子的转速,通过转速差实现转向,这两种方式各有什么优缺点呢?