Arduino-PD-线路跟随
我对arduino语言不熟悉。这是我的第一个程序,我昨晚写的。下面是一条PD线。 我目前在调整电机方面有问题。简单地说,它只是直走。 我用的是QTR模拟传感器阵列。我可能会切换到数字,因为罗密欧板上的一个模拟输入不工作。有人对我的逻辑有什么建议或改进吗 #include <QTRSensors.h> #define NUM_SENSORS 5 //Number of sensors used #define NUM_SAMPLES_PER_SENSOR 4
我对arduino语言不熟悉。这是我的第一个程序,我昨晚写的。下面是一条PD线。 我目前在调整电机方面有问题。简单地说,它只是直走。 我用的是QTR模拟传感器阵列。我可能会切换到数字,因为罗密欧板上的一个模拟输入不工作。有人对我的逻辑有什么建议或改进吗 #include <QTRSensors.h> #define NUM_SENSORS 5 //Number of sensors used #define NUM_SAMPLES_PER_SENSOR 4
我有一个ADK2012 arduino到期设备。我正在使用谷歌的arduino软件副本,我可以毫无困难地编译和运行各种草图 我有一个LM35,我已经连接到一个模拟输入。默认情况下,参考电压为5伏。这似乎很好,但我想使用不同的参考值,如下所述: 不幸的是,我遇到了一些麻烦。当我像这样使用DEFAULT或EXTERNAL时: analogReference(DEFAULT); 我在编译时得到: AnalogReadSerial.cpp: In function 'void setup()': A
我有一个arduino Duemilanove和一个atmega8芯片。arduino板上有Atmega328。我已经编写了一个在arduino上运行良好的代码。现在我想把代码从arduino传输到我的atmega8芯片上。我可以用arduino引导程序来完成吗 提前感谢。您可以肯定地使用arduino的旧文件,也可以使用较新的版本 但是请记住,您只有~7Kb(在1K引导加载程序之后) 您需要将代码编译为“Arduino NG或更旧的w/Atmega8” 您可以在这里找到有关如何刻录引导加载程序
我有一个项目在我的Duemilanove上运行得很好——我可以编译它用于“生产”,在那里它运行时不需要串行通信,并且可以发送一些tweet。我可以为简单的串行消息传递和调试编译它,也可以为详细的串行活动编译它。一切正常。对于详细模式,我使用Serial.print(F(“somemessagestring”))将字符串保留在SRAM之外。在我开始之前,我很容易就用完了SRAM,当然简单的串行模式很好,但是verbose将无法运行,或者运行不稳定 现在我拿起了一个Uno R3,并将我的软件加载到上
我是Arduino领域的新手。我有一个Arduino Leonardo和一个OV7670相机()。 我需要什么来连接这个摄像头和我的Arduino?屏蔽或类似的东西???你只需要一个模块和一种方法来获得从5v到3.3v的8mhz时钟信号。我写了关于如何在arduino上使用ov7670的文章,你可以在这里阅读
我尝试用SD卡建立一个数据记录器来保存传感器数据。一旦电路进入休眠状态,我就需要降低功耗。问题是SD卡模块的功耗约为3mA。我读了很多关于省电的书,很多人在醒来时会通过重新初始化SD卡来切换SD卡模块的电源。我做不到。SD卡模块切换后,只会抛出错误消息。谁能给我一个提示让我走上正轨?如何正确地重新初始化SD卡模块 谢谢 1。编辑 在第一次醒来之前,一切正常。然后抛出代码错误消息“Card failed,or not present”(卡失败或不存在),循环将在不写入SD卡的情况下再次启动。 以下
我正在使用这个sh1函数。我不想打印散列值,而是想将其存储在一个字符数组或字符串中以供进一步处理 #include "sha1.h" #include <stdlib.h> void setup(){ Serial.begin(9600); } void loop() { uint8_t *hash; Sha1.init(); Sha1.print("This is a message to hash"); hash = Sha1.result();
我是编程新手。我在Arduino项目中获得字符串 如何从下面的字符串中仅提取整数(“240”)并转换为int GET /?LED=240&submit=Change+Pin+5%21 HTTP/1.1 我曾尝试使用索引()/>代码,但不能成功。 < p>可以参考下面的C++逻辑。 #包括“stdafx.h” #包括 #包括 #包括 #包括 模板 字符串编号(常量标准::字符串和文本) { std::istringstream ss(文本); T结果; ss>>结果; if(ss.fa
我刚用Grove Starter Kit买了一个,我想写一个程序,给电路板一个IP地址,检查房间里的温度,如果超过这个温度,就会打开一个LED。我可以检查RGB显示器的情况。当我将USB OTG端口连接到我的笔记本电脑时,wifi连接被完美检测到,IP地址被完美接收,温度控制工作正常。这个程序按我的要求运行。现在是问题。我想在拔下USB连接时执行相同的程序,因此我想使该板独立于PC,就像它是一个独立设备一样 1) 如果我把这个工作程序上传到主板上,拔下USB插头,当然,通过转接板上的插孔只给电源
我对arduino及其编程比较陌生,尽管我一直在努力工作并取得了成果。我已经添加了我的草图的一个缩短版本,它连接到我的Web服务器,并获取特定城市的当前温度。然后,我将使用该温度设置加热器,加热器也由arduino控制。我面临的问题是,在从connectandread函数读取Web服务器上的数据后,我无法了解如何返回主循环。收到数据(temp)后,草图停止/停止。最终,我将每2小时调用一次函数。总之,我需要调用函数,然后在它运行后返回主循环。我希望我已经解释清楚了 byte server[] =
我试图使用三个电位器连接到Arduino来调整处理的颜色背景。我对这一点非常陌生 这是我的Arduino代码: int potPin = 0; int potPinB = 1; int potPinC = 2; void setup() { Serial.begin(9600); } void loop() { int val = map(analogRead(potPin), 0, 1023, 0, 255); Serial.print(val); del
我想写下按钮打开或关闭的时间 每次有人打开开关时,Arduino都会存储此信息。#包括//库以访问板载EEPROM #include <EEPROM.h> // library to access the onboard EEPROM const int debounceTime = 15000; // debounce time in microseconds int buttonPin = 5; // pushbutton connected to digital pin 5
我希望有人能帮我诊断我正在经历的这种奇怪的行为。我正在为Arduino进行编程,并使用。该代码提交一个字节数组,通过调制解调器发送sendData正在接受一个unsigned char[],我将其转换为void*data\u len是写入缓冲区的字节数,而不是缓冲区本身的大小 我正在使用的板不使用printf/sprintf打印到标准输出。而是使用Serial.print和Serial.println完成系列< /代码>这里是一个ARDUIO类,而不是标准C++类。代码>sprintf_Byte
我使用arduino控制继电器模块。 我有一个继电器模块。 当我运行代码打开和关闭继电器! 什么也没发生。继电器模块上的红灯亮起,并随着我的代码正确熄灭! 但这种转变并没有发生! NC(常闭)始终仅处于激活状态! 我的模块有故障还是我有故障 有人能帮帮我吗 提前谢谢你 将您的代码以及arduino和中继之间的连接添加到问题中。将vcc中继到arduino vcc!继电器接地至arduino接地!中继IP到arduino 7!回路中的输出低至7和延迟(5000),输出高至8和延迟(5000)。模块
我需要有关Arduino Simulink支持包块“串行接收”的帮助。我用“V2 Ascii Decode”对接收到的字节进行解码,但数据是以单个字节的形式出现的,我不知道如何将其转换为预期的数值,例如,我发送到Arduino“123”,在Simulink中,我分别得到了“1”和“2”以及“3”。如何将其解码为原始值?是否插入了分隔符?simulink模型应该如何检测数字的结尾?是否插入了分隔符?simulink模型应如何检测数字的结尾?
我通过AccelStepper库得到了运行14个步进器的代码。 但我只想同时运行3台步进电机。 如果需要使用4个(或更多)步进电机,则第4个步进电机应等待其他3个步进电机中的一个完成。 方法:在“空闲插槽”可用时启动步进电机。 我该怎么做 这是我的密码: #include <Max3421e.h> #include <Usb.h> #include <AndroidAccessory.h> #include <AccelStepper.h
在Arduino中是否有可能像在Java或C中那样在一段时间后添加else循环?大概是这样的: while(condition){ doThingA; } else{ doThingB; } C#没有,而…else,我认为Java也没有这种结构。Python拥有它,并且由于else块中的指令不仅在您中断循环时才会执行,因此您可以如下所示对其进行仿真: bool flag = TRUE; while (condition) { if (anothercondition)
我使用UDP连接两个nodemcu模块。一个节点MCU是无线接入点,另一个节点MCU作为客户端连接到接入点 当客户端连接时,此代码将客户端的IP地址发送到AP: Udp.beginPacket("192.168.4.1", UDPPort);//send ip to server char ipBuffer[20]; WiFi.localIP().toString().toCharArray(ipBuffer, 20); Udp.write(ipBuffer);
是否可以使用“事件中心”将数据从ESP8266节点MCU发送到Microsoft Azure。在互联网上搜索时,我得到的结果是他们正在使用Azure Iot Hub。由于我的应用程序不需要双向通信,而且azure iot hub服务比azure event hub服务非常昂贵,如果可以将azure event hub与esp8266 Nodemcu一起使用,我更愿意使用。 谁能给我指路吗 您将希望使用事件中心RESTAPI来实现这一点 API文档: 使用Arduino实现概念验证: Ardui
是否可以使用VS代码将Adruino代码上传到我的SODAQ mbili板,并查看串行监视器 VS代码版本:1.6.1 操作系统版本:Windows 10[版本10.0.14393] 至少在Ubuntu上似乎是可能的,但我认为类似的过程应该可以在其他操作系统上使用。可在上找到要下载的说明和文件 本说明不包括启动串行监视器,但您可以下载并使用任何其他终端程序,如,或您选择的任何其他程序
AVR MCU(Arduino)是否会记住在nointerrupts()部分中发生的所有中断 void f1() { noInterrupts(); // critical, time-sensitive code here interrupts(); } //now jump to queued interrupts if any 它会在中断()后执行它们吗 我这样问是因为在阅读了数据表之后,我感觉所有的中断都有它们的标志,所以这可能没有问题。但我并没有那个么丰富的经验,我可能遗
我想用arduino控制一个intel 4线风扇。我已经连接好电线,并试图在下面粘贴代码,但风扇在慢速设置下不断改变速度,我不知道为什么。我唯一没有的就是在arduino和风扇上的控制引脚之间有一个电阻器 const int PWMPin = 3; int pinOUT = 7; int pinIN = 4; void setup() { pinMode(PWMPin, OUTPUT); TCCR2A = 0x23; TCCR2B = 0x0A; OCR2A = 79; pi
我正在做一个关于自动控制的自平衡四架直升机的项目。我使用的是Arduino Mega 2560和MPU6050。在没有DMP的帮助下,我从MPU6050获得了横摇角和俯仰角,并应用复合滤波器来忽略由于振动而产生的噪声 还配置并能够在Arduino中断的帮助下,通过Flysky发射机和接收机运行BLDC电机。现在,为了平衡,我只关注一个轴(即滚动)。我还建立了一个平衡的立场,为自由运动的辊轴的电机 对于控制部分,我正在实现PID算法。我试着只使用kp值,这样,不知何故,我可以平衡,然后转到ki和k
我试图用按钮更改变量的值。我在setup()方法之前声明了变量: 更改变量的方法是(in loop()方法): 我的问题是,如何将更改后的最低温度保存到闪存中。当我重新启动Arduino时,我需要获得最后一个最低温度设置。这是最好的答案。非常感谢。 const int button = 14; float minimum_temp = 37.7; buttonState = digitalRead(button); if (buttonState != lastButtonState){
我不知道这个代码有什么问题: #include<stdlib.h> void setup() { Serial.begin(115200); char dataH[5]; char dataC[5]; char dataF[5]; float h = 56.00; float c = 31.50; float f = 88.70; dtostrf(h,5,2,dataH); dtostrf(c,5,2,dataC); dtostrf(f,
我是一名大学生,所以我仍在学习很多东西。我在做一个项目时遇到了一些有趣的事情。我有一段代码,当它没有放入for循环时可以工作,但当它被放入for循环时就不工作了。我只是想知道为什么。这是我的密码: void setup() { Serial.begin(9600); int a[8]; for(int i=0;i<8;i++) { a[i]=pow(2,i); } for(int i=0;i<8;i++) { Serial.print(a[i])
我正在使用优秀的Visual Studio代码为Teensy 3.6(与Arduino兼容的板)开发 这很有效。但我想通过SWD(串行线调试)进行更好的调试。 因此,我断开了与Arduino兼容的USB芯片,改为通过SWD和JLINK连接。与此类似: 我可以使用“J-Link Lite”软件通过platformio构建的固件进行闪存。此外,我可以运行J-Link GDB服务器而不会出现问题。 但是我无法让IDE集成工作 我的platformio.ini如下所示: [env:teensy36] p
我已经开始为Arduino学习C语言大约两周了。我有以下代码,我不理解如何从函数ReadLine检索数据。我也不明白变量BufferCount是如何影响程序的,以及为什么要使用它。我知道它包含了一年中的位数,但这就是我对这个变量的全部了解 根据我目前所了解的情况,函数由以下部分组成: 函数类型说明符 函数名 函数参数 我在这个程序中看到的情况使我认为函数也可以使用参数部分返回值。我一直认为函数只能返回与类型说明符类型相同的值(int,boolean…) void setup(){ Seria
我正在研究GSM900A模块和Arduino Uno R3。 在使用AT命令发送SMS时,我得到如下输出: AT+CMGF=1 Ok AT+CMGS="+91 10digit mobile number" message ERROR 并且短信不会发送到特定的10位数字。如何克服此问题。发送sms的格式为: AT+CMGS=<number><CR> <message><CTRL-Z> AT+CMGS= 请检查您是否在编号后添加了回车。 此外,您
我试图无线传输一个字符,让接收器通过串口读取该字符,以便创建一个switch语句 当尝试转换为int时,无论在html文本框中键入什么字符,我都会得到相同的int值串行打印(缓冲区)正在显示正确的字符。谢谢你的帮助 这是我输入的字符,以及序列号中的结果 让我们这样试试。将“buffer”从“char”-->“int”转换为“buffer”后,您可以在执行某些操作之前检查h是否为数字 //..Your code..// //..Your code..// //..Your
我是一名web开发人员,这是我第一次为Arduino编写代码,所以我可能无法清楚地表达自己,但我会尝试 我正在尝试这样做: 针脚8和9接触,伺服从位置A转到位置B 延迟5000毫秒后,伺服返回位置a 这个很好用。然而,我试图为伺服系统引入另一个条件。我想持续读取val(analogueRead的potpin),如果低于500,我希望伺服从位置B返回到位置A,但只是暂时,直到val返回到>499(都在5000毫秒的间隔内) 我可以很容易地实现其中一个,但我很难让这两个一起工作。在下面的代码中,
我正在使用ESP8266 v1连接到我的Arduino的RX和TX引脚。我正在尝试发送AT命令以请求post查询。但我唯一得到的是400个错误的请求。我的电脑上部署了web api。ESP8266也连接到同一网络。我可以通过AT+CIPSTART=1、“TCP”、“192.168.0.150”和8011进行连接。它显示connect ok,然后我设置了要发送的字符的长度,我只写了post命令,但我得到了400个错误 下面是我遵循的步骤,每个命令都是成功的,除了post命令after>sign A
我想为Arduino编写快速脉冲计数代码,以100khz的频率运行。我想数一数发电机发出的快速平方脉冲。我在互联网上找不到任何东西。你可以使用中断。阅读文档 示例代码: const byte interruptPin = 2; int count = 0; void setup() { Serial.begin(115200); pinMode(interruptPin, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(i
我正在用SIM7000 4G调制解调器编程一个ESP32,调制解调器库有一个函数,可以从调制解调器获取一个包含21个变量的CSV字符串,并将其部分解析为变量。最初的作者只关心少数变量,所以传递了指针 如果我想修改代码使所有变量都可用,那么传递21个指针似乎很难,尤其是如果我一次只关心几个变量的话。这是结构的情况吗?让数据可用的最方便用户的方法是什么 该功能向带有GPS芯片的蜂窝调制解调器发送至(SIM7000)。接收到命令后,芯片内部解析来自GPS的NEMA数据,并返回和CSV字符串以及所有相关
我需要使用另一个串口将数据从arduino teensy发送到processing,因为默认串口(serial.begin(9600))已经用于大型程序 我试着阅读一些参考资料,了解如何更改我想要接收的序列号(),但我不认为可以更改 void setup() { Serial.begin(115200); // already used Serial2.begin(9600); // processing } void loop() { Serial.println("...")
我有一个问题,我需要在注册前验证指纹,我的问题是我必须把我的手指放在指纹上3次,我宁愿只做两次,这是正常的。验证很好,我只是不知道为什么我必须移除手指才能继续注册这个,我在get指纹注册()方法中这样做 我的期望是第一次将手指放在传感器上,在这里我验证指纹是否不存在,如果指纹未注册,则第一次捕获指纹进行注册,而无需将手指从传感器上移除,其余的不再重要 在我的循环中有如下内容: id = readnumber(); // ... while ((huella = finger.getImage()
我使用aREST访问我的NODEMCU,但串行监视器上显示“尝试MQTT连接…失败,rc=-4在5秒内重试” 我的代码: // Control ESP8266 anywhere // Import required libraries #include <ESP8266WiFi.h> #include <PubSubClient.h> #include <WiFiClientSecure.h> #include <aREST.h> // Cli
是否可以加入arduino代码的某些部分。我需要广告64个“州”。是否有可能加入以下团队?如果有,如何加入 volatile boolean a_state,b_state,c_state,d_state,e_state,f_state,g_state,h_state,i_state = false; 虽然这里只有10个“状态”,但我将添加64个“状态”您可能正在寻找一个,可以按如下方式初始化: volatile bool状态[64]; 像往常一样,我没有给出足够的信息。我需要稍后调用这些状态
我正在努力理解这行代码 FastLED.addLeds<WS2812, PIN, GRB>(leds, NUM_LEDS); FastLED.addled(LED、NUM_LED); 它是Arduino的ambilight.ino的一部分,并使用FastLED库。这似乎与led条带的初始化有关,但我无法理解符号是如何使用的,如果它们是比较器或其他东西 我知道一点编码,但这一点让我感到困惑 干杯 我没有很多东西要尝试,只是想了解代码 代码工作正常,只是想了解它。它是一个模板,请在此
我正在尝试将多个数据从Arduino发送到nodemcu。但它总是显示错误 反序列化JSON()失败,代码为InvalidInput 这是密码 Arduino UNO #include <SoftwareSerial.h> #include <ArduinoJson.h> SoftwareSerial s(5,6); void setup() { s.begin(9600); } void loop() { StaticJsonDocument<100
我正在尝试运行以下项目: 该项目是关于探测帧/探测请求的。让我们用一个简单的ESP8266作为WLAN路由器,收集所有传入的探测帧。每个探测帧应该包括设备的MAC地址,以及它保存的网络的一个SSID。就这样 我已经在我的ESP8266上复制了项目代码。 我有3部不同的智能手机。 现在,当我查看串行监视器时,我会看到我3部智能手机的所有软件包,每个软件包都应该包括智能手机的MAC地址,还有一个保存的SSID,它在过去连接过 除了SSID,我什么都看到了。 我可以看到来自不同智能手机的探测框,但S
关于。。。 窄带Twillio T-Mobile Wio LTE Cat NB物联网(SARA-N41) V1.0 2018年7月17日 我正在使用OSx 10.15.4测试版(19E234g) 我安装了苹果命令行工具。。。根据 寻找一些关于下一步做什么的建议 Arduino: 1.8.7 (Mac OS X), Board: "Seeeduino Stalker V3" /Applications/Arduino.app/Contents/Java/arduino-bui
Arduino代码: #include <SoftwareSerial.h> #include <TinyGPS.h> //long lat,lon; // create variable for latitude and longitude object float lat,lon ; // create variable for latitude and longitude object SoftwareSerial gpsSerial(3,4);//rx,tx
我想在嵌入式系统中使用北斗导航卫星系统(BDS)(带有Arduino或Raspberry Pi)。在我的初步研究中,我了解到北斗有一个全球短消息通信服务。对于我的项目来说,这个特性可以证明是非常有用的。中国卫星导航办公室发布的一份报告称 关于中国及周边地区的短消息通信服务 服务能力将提高到每年1000万次 小时,接收机发射功率将降低至1-3W,并 每封邮件可包含1000个汉字(14000字节)。作为 对于全球短消息通信服务,该服务 每封邮件的容量为40个汉字(560字节) 这证实了北斗系统的短信
我正在做一个项目,我想用一个手机来制作我自己的手机,我想从sim卡上读取所有的电话簿条目。我已经知道如何使用AT命令获取所有条目,但是我的代码不能正常工作,它可以读取大约5条条目,但在第6条左右之后它就停止工作了。以下是我使用的代码: void ReadSimCard(){ WriteText(“读取SIM…”); CMD(“AT+CPBS=\'SM\”); 延迟(3000); 而(!hwSerial.available()){ 延迟(10); } while(hwSerial.availabl
我正在使用以下代码: #包括 #包括 #包括 #包括 #包括“RTClib.h” #定义蜂鸣器2 //初始化等级HCSR04(触发引脚、回波引脚) HCSR04 hcAir(13,12); HCSR04 hcPakan(11,10); 串行软件(5,6); RTC_DS3231 RTC; char daysOfTheWeek[7][12]={“明谷”、“塞宁”、“塞拉萨”、“拉布”、“卡米斯”、“朱玛特”、“萨布图”}; 静态jsonBuffer jsonBuffer; JsonObject&r
写Arduino代码时如何检查变量的数据类型。就像在Python中使用Type()一样,如果需要在ARDUNO上做同样的事情,请告知。 < P>。C++中,在运行时,这类事情是不可能的。这可能与没有类型安全有关,但不要引用我的话 根据您正在尝试做的事情,合适的解决方案可能是最好的解决方案。你能详细说明一下吗
我想在挡光板(连接到wsensP引脚)检测到某种东西时立即停止电机(“脉冲”功能) 我用“上升中断”进行了第一次测试: 它工作得非常完美:一旦水滴落入光屏障,“脉冲”功能就不再被调用 但我想进行更详细的检测,于是我切换到“更改”中断: void setup() { attachInterrupt(digitalPinToInterrupt(wsensP), detected, CHANGE); } void detected(){ wsensor = !wsensor; if (wsen
我正在对Arduino Nano进行编程,这样它就可以通过SIM900模块发送数据 要设置模块,我需要执行以下操作: ATC OK: AT OK ATC OK: AT+IPR=9600 OK ATC OK: AT+CMEE=2 OK ATC: AT+COPS=? //this takes a lot of time ATC OK: +COPS: (1,"E-Plus","E-Plus","26203"),(1,"Vodafone.de","no name","
我的Grove多通道气体传感器有问题。 当我尝试从传感器中获取气体浓度时,它会在串行监视器中返回“无效ppm”(尝试更换 c = -gas.measure.. 与 你能分享硬件的细节包括接线细节吗,可能是出了什么问题。 c = -gas.measure.. c = gas.measure..