arduino NANO 9V供电问题

qq_44016871 2020-05-13 01:32:40
用9V3A电源供电,控制小灯的点亮,但通电一分钟后不能正常控制,换用6V电源供电后能正常使用,这是什么原因?
用9V电源供电,控制485通讯9600波特率不能正常通讯,改为115200波特率就能正常通讯,是什么原因?
求各位大神帮忙解答下!!
以及NANO的10引脚控制是不是有什么特殊含义,用10 引脚控制小灯点亮,不能正常控制,是什么呢原因?

int c=0;
int var=0;
int a=0;
uint8_t buffer[2]="a1";
String comdata="";
String str;
String tcaspass;
String tcasfail;
String topant;
String botant;
String hdg;
String ralog;
String tadisp;
String radisp;
String radalt;
String xpdrbus;
String att;

int testPin = 13; // 按键的管脚定义

void setup()
{
Serial.begin(9600,SERIAL_8O1);

pinMode(testPin, INPUT_PULLUP); //设置按键管脚上拉输入模式
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);

}


void Recive485()
{
while (Serial.available() > 0)
{
comdata += char(Serial.read());
delay(2);
}
if (comdata.length() > 0)
{
// Serial.println(comdata);
str=comdata;
comdata = "";
}
}

void Send()
{
if(digitalRead(testPin) == HIGH)
{
buffer[1]=0x41;
buffer[1]=0x31;
Serial.write(buffer,2);
Serial.println(" ");
delay(100);
}
else
{
digitalWrite(10,LOW);
}
}

void choose()
{
if (digitalRead(testPin) == HIGH) //有按键按下
{
delay(20); //延时去抖动
if (digitalRead(testPin) == HIGH) //有按键按下
{
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
delay(3000);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
if(str.length()==47)
{
tcaspass=str.substring(0,2);
if(tcaspass=="A1"){digitalWrite(2,LOW);}
if(tcaspass=="A2"){digitalWrite(2,HIGH);}

tcasfail=str.substring(2,4);
if(tcasfail=="B1"){digitalWrite(4,LOW);}
if(tcasfail=="B2"){digitalWrite(4,HIGH);}

topant=str.substring(4,6);
if(topant=="C1"){digitalWrite(6,LOW);}
if(topant=="C2"){digitalWrite(6,HIGH);}

botant=str.substring(6,8);
if(botant=="D1"){digitalWrite(8,LOW);}
if(botant=="D2"){digitalWrite(8,HIGH);}

hdg=str.substring(8,10);
if(hdg=="E1"){digitalWrite(10,LOW);}
if(hdg=="E2"){digitalWrite(10,HIGH);}


ralog=str.substring(10,12);
if(ralog=="F1"){digitalWrite(12,LOW);}
if(ralog=="F2"){digitalWrite(12,HIGH);}

tadisp=str.substring(12,14);
if(tadisp=="G1"){digitalWrite(3,LOW);}
if(tadisp=="G2"){digitalWrite(3,HIGH);}

radisp=str.substring(14,16);
if(radisp=="H1"){digitalWrite(5,LOW);}
if(radisp=="H2"){digitalWrite(5,HIGH);}

radalt=str.substring(16,18);
if(radalt=="I1"){digitalWrite(7,LOW);}
if(radalt=="I2"){digitalWrite(7,HIGH);}

xpdrbus=str.substring(18,20);
if(xpdrbus=="J1"){digitalWrite(9,LOW);}
if(xpdrbus=="J2"){digitalWrite(9,HIGH);}

att=str.substring(20,22);
if(att=="K1"){digitalWrite(11,LOW);}
if(att=="K2"){digitalWrite(11,HIGH);}

}
else
{
digitalWrite(2,HIGH);
}
}
}
}

void loop()
{
Recive485();
Send();
choose();
}
...全文
575 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
硬件部件: Arduino Nano R3× 1个 9V电池(通用)× 1个 9V电池夹 × 1个 5毫米LED:黄色 × 4 5毫米LED:红色 × 2个 一个简单的Arduino Nano LED蜡烛,可容纳2至6个LED。 你会需要工具 一台安装了Arduino IDE的计算机,并且连接了一根微型USB电缆。 烙铁,焊锡和助焊剂。 热胶枪和胶水。 剪线钳/剥线钳。 接线 使用随附的接线图作为参考。 如果您不熟悉焊接,请参阅我的教程,该教程演示了如何焊接Arduino Nano。本教程显示了如何将引脚接头焊接到Arduino Nano。您无需为此项目使用引脚接头,而是可以将导线直接焊接到板上。但是,您可能仍然觉得本教程很有用。 将LED的负极(-ve)腿朝着LED底座的中心插入LED底座。 将LED的负极脚焊接在一起。根据您选择的配置和LED,此步骤可能不需要接线。支脚可能足够长,可以直接将它们焊接在一起。 将电阻器焊接到每个正(+ ve)引脚。 将一短段(4-6英寸)的负极彩色导线焊接到负极LED支脚之一。 将短彩色(4-6英寸)的正极线焊接到每个电阻器上。 在每个正极脚和电阻器上放一些热收缩物,以使正极端子没有裸露。 使用烙铁来缩小热缩,注意不要让烙铁碰到LED底座。我不建议使用热风枪。 将负极LED线和9v电池连接器的负极线焊接到GNDArduino Nano的引脚上。您可以扭绞并连接它们,也可以将它们焊接到单独的GND针脚上。 将9v电池连接器的正极线焊接到Arduino Nano的VIN引脚上。 焊接正极LED导线销D3,D5,D6,D9,D10和/或D11。如果您的LED少于6个,则使用较少的引脚。 Arduino Nano进行编程教程: 通过USB将Arduino Nano连接到您的计算机。 在Arduino IDE中打开代码文件(codeandmake.com_Arduino_Nano_LED_Candle.ino)。 如果您使用的LED少于6个,请从阵列中卸下所有未使用的引脚ledPins:int ledPins[] = { 3, 5, 6, 9, 10, 11 }; 将代码上传到Arduino Nano,几秒钟后,LED应当开始闪烁。 您可以尝试使用不同的random数字以获得不同的效果。 取悦后,请断开USB电缆的连接,并在通过9v电池供电时检查其是否可以正常工作。
本方案采用超声波测距模块作为小车平衡状态的检测,免去了对加速度、陀螺仪传感器的理解和复杂处理算法。小车的平衡控制仍然采用网络上流行的Arduino开源硬件,再加上电机驱动模块 L298N,电机仍然采用TT马达(香蕉电机)。 该方案为了降低成本,采用电位器调整设定小车的平衡参数,不使用蓝牙无线模块或有线串口在线调整参数。 硬件设计 硬件设计比较简单,以Arduino Nano为核心控制模块,采用HC-SR04超声波测距模块,L298N电机驱动模块,供电采用7.4V/2200mAh锂电池。图中三个10K电位器分别用于平衡点设置、PD算法中Kp和Kd系数设置的调整。 电路原理图如下所示: 图中J1为HC-SR04超声波测距模块,J2、J3为L298N模块,Arduino Nano为核心控制模块,MG1、MG2分别为左右电机。 遥控超声自平衡小车视频 该方案利用PWM的输出值近似计算出车速,再用速度PD计算出平衡距离修订值,从而实现小车的速度给定。该方案的优势与用速度PD计算出PWM修订值不同,换上真实速度传感器,即可在变化的坡度上实现超声自平衡小车的平衡。 坡度动态改变时的超声自平衡小车视频(拆了门板做的测试) 平面与坡度上的超声自平衡小车 附件内容包含: 超声波测距平衡小车设计文档 超声波测距平衡小车器件采购清单 超声自平衡小车程序 串口调试助手程序
在这个项目中,我们将学习如何使用Adafruit风速计传感器和Arduino测量风速。 硬件部件: Arduino Nano R3 × 1个 DFRobot风速计套件(0-5V)× 1个 0.96英寸OLED 64x128显示模块 × 1个 DC / DC开关电容可调升压转换器,2.7V至4.5V输入 × 1个 锂离子充电电池 × 1个 软件应用程序和在线服务: Arduino IDE 所述Adafruit的风速计传感器是一个三杯式风速计,其能够测量风速高达70米/ S或156英里每小时。它由外壳,风杯和电路模块组成。 现在,让我们将Adafruit风速计传感器与Arduino接口并测量风速。原理图或电路如下。 Adafruit风速计可在7-24V DC之间工作。因此,来自Arduino的电压不足以为传感器供电。因此,我使用MT3608 DC-DC升压转换器模块将锂离子电池的3.7V电压升压至7.5V。要调节输出电压,请先将电池连接至MT3608模块的输入,然后旋转电位计,直到万用表上的输出电压显示7.5V。 升压转换器模块的输出为Sensor VCC导线和Arduino Vin引脚提供7.5V电压。风速计传感器的模拟输出引脚的蓝线连接到Arduino的A0 。同样,OLED显示器的I2C引脚(即SDA和SCL )连接到Arduino的A4和A5 。OLED显示器由Arduino 3.3V引脚提供3.3V电压。 测量风速并测试设备 将Arduino风速仪代码上传到Arduino开发板后,OLED显示屏将开始显示风速。当风速计杯稳定时,OLED将显示约0.1m / s至0.3m / s的速度。将传感器放在有风的地方时,速度会变化或增加。我用家里的屋顶检查风速。 最初,我尝试以m / s为单位测量速度,并得到如下图所示的结果。速度变化取决于叶片旋转而增加或减小。 然后,我使用了工业标准测量并将m / s转换为英里每小时(mph)。您还可以使用数学计算将速度转换为每小时公里(kph)。

5,313

社区成员

发帖
与我相关
我的任务
社区描述
硬件使用专区,欢迎大家讨论硬件相关内容 宝藏!数字IC精品文章收录(CSDN近500篇) http://t.csdn.cn/QbivO
社区管理员
  • 硬件使用社区
  • 张江打工人
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧