Questions tagged «serial»

串行通信是Arduino与计算机之间的标准USB连接,带有标准USB A至B电缆,或使用USB至串行转换器通过TX / RX引脚。它还可以引用串行库。

4
如何从玻璃电子浴室秤传感器获取体重数据?
我正在做一个带有浴室磅秤的小项目,但遇到一些问题。我正在使用Arduino Uno V3,HX711模块放大器和秤。 规模: HX711放大器: 我拆解了秤,以接触到传感器电线,我有些困惑。这些传感器各有三根导线。因此,它们是半桥传感器。秤使用4个传感器,因此当秤进行测量时,它将使用全桥进行测量。而这3根线是红色,黑色,蓝色。我不知道黑色(GND或正极)和蓝色(相同的猜测)是什么。四个红色导线的名称分别为E +,E-,S +和S-。我将提供一张拆卸后的秤的图片。 两根蓝色的导线在每侧焊接在一起。我猜红色的线是信号(S +,S-,E +和E-),但是蓝色和黑色是什么?然后我将电线焊接到这些电线上以获取传感器读数,但是我不知道这是什么。 传感器看起来像这样: 我试过了: 该项目的两个不同的库都名为HX711(针对此模块) 为A- on模块更改A + // Hx711.DOUT - pin #A1 // Hx711.SCK - pin #A0 #include "hx711.h" Hx711 scale(A1, A0); void setup() { Serial.begin(9600); } void loop() { Serial.print(scale.getGram(), 1); Serial.println(" g"); delay(200); } 没有成功。平静时,串行监视器上显示0.0g,加载时相同。 我的问题是: 如何知道哪条线是GND,+ 5V,哪一条是信号?如何连接这些传感器中的4个以读取数据?如何使用可用的HX711库和HX711模块?而且,最重要的是,如何从串行读取这种规模的数据?

2
将ATmega328置于非常深的睡眠中并收听串行信号?
我研究了ATmega328的睡眠选项,并阅读了一些有关它的文章,我想了解是否还有更多选项。 因此,我希望获得尽可能低的电流,以便任何小于100uA的电流都是好的-只要我能听醒uart和中断即可。 我正在使用带有ATmega328p的定制PCB(不是UNO)。 将芯片设置为深度睡眠: set_sleep_mode (SLEEP_MODE_PWR_DOWN); sleep_enable(); sleep_cpu (); 根据与串行通信不会唤醒它,这个。 您需要将其置于IDLE模式下以侦听串行,但这会消耗几个mA -bad。 我找到了此链接,您可以在其中将该硬件串行连接到中断-这很危险,因此您可能会丢失数据,此外,我需要这两个中断引脚。 我还阅读了Gammon的这篇文章,您可以在其中禁用某些功能,以便以较低的功耗获得IDLE睡眠-但他没有提及您从中得到的准确程度: power_adc_disable(); power_spi_disable(); power_timer0_disable(); power_timer1_disable(); power_timer2_disable(); power_twi_disable(); 那么,最重要的是,在没有任何硬件操纵的情况下,是否有任何选择,至少可以获得小于0.25mA的电流,并且还可以监听串行端口?例如,唤醒长串行数据输入?

5
减少arduino和计算机上的处理草图之间的延迟
我目前在Arduino项目书的项目#14中。 我正在尝试使用Arduino控制笔记本电脑上的处理草图。这是通过使用电位器控制图像背景来实现的。 Arduino代码: void setup(){ Serial.begin(9600); } void loop(){ Serial.write(analogRead(A0)/4); } 处理方式: //imports serial library import processing.serial.*; //setups the serial object Serial myPort; //creates an object for the image PImage logo; //variable to store background color int bgcolor = 0; void setup(){ colorMode(HSB,255); logo = loadImage("http://arduino.cc/logo.png"); size(logo.width,logo.height); println("Available serial ports"); …

6
发送大量的串行数据
因此,在机器人技术领域,有时您需要将多个板和/或计算机链接在一起以共享信息或保存统计数据。目前,我需要通过串行连接发送一些不同的变量,并且想知道这样做的最佳方法是什么? 到目前为止,我已经确定发送结构可能是发送数据的更简单方法。有谁知道其他更有效的方式吗? 请记住,从本质上讲,我将不得不发送4个电机,压缩机,不同温度,随机物体和3个臂部分的数据。
13 serial 

2
拨打模拟电话?
我们如何才能使Arduino开发板与旧的模拟电话互动并拨打电话? 我猜想这涉及到使用一些特定的电缆将电路板连接到电话(如何称呼它?) 另外,我认为这将要求我们使用电话低级拨号协议(以便与电话进行实际交互并发送命令)。我在哪里可以读到它? 是否有理由担心数字/串行板和类似设备之间的对话? 顺便说一句,我读过模拟电话的电压相对较高,很容易损坏电路板。我很想获得与将Arduino连接到模拟电话有关的诸如此类的任何信息,以便了解此类问题以及需要关注和探索的内容。 非常感谢!

3
串行数据显示异常
我有一个简单的草图,可以在序列号上打印出“ Hello World”,但是却出现了一堆乱码。 void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello World"); delay(1000); } 为什么不按代码说明打印“ Hello World”?
12 serial 


2
廉价的有线多点网状网络
我希望为交互式舞池制作15 x 15的负载传感器和RGB LED网格。每个节点将由arduino驱动,整个楼层将由RaspberryPi管理。我正在尝试找出使节点与Pi进行通信的最佳方法。理想情况下,网络应具有以下特征: 每节点成本低 Raspberry Pi作为主节点,arduino节点作为从节点 知道每个节点在网格中的位置的能力 修复:如果某个节点发生故障,它并不能消除所有其他节点。 可以轻松更换损坏的节点 每个节点的电子设备之间的距离约为12英寸 主机将距离矩阵5至10英尺。 到目前为止,我一直在努力学习一些想法。 I2C 这将允许每个节点可寻址,但是,似乎Arduino仅允许多达127个地址,并且此矩阵将至少具有225个节点。 SPI 如果以菊花链方式链接,则很容易知道每个节点在矩阵中的位置。但是,如果一个节点要在断开所有通信之后中断所有节点,它将停止通信。(对吗?)我可以将每一行雏菊单独地链接起来,因此,如果发生故障,则只会影响该行。 1-Wire 1-wire也看起来很有希望。我必须弄清楚自己确定节点放置的方式,可以通过多种方式来实现。 自定义串行 每个节点的四个侧面都有一个串行连接(rx / tx)。这将允许它直接与其每个邻居进行通信,并传递未发送给它的消息。如果一个节点发生故障,由于到每个目的地都有多个路径,因此该消息将自动在断开的节点周围路由。这个选项有点疯狂,我宁愿避免一些自定义和令人费解的事情。 USB 这将在每个节点中需要一个USB集线器。 XBee 太贵了。 其他想法或选择?
11 serial  i2c  spi  networking 

1
如何使用10-15m距离的电线(两种方式)通信Raspberry Pi和Arduino?
我正在开始一个家庭自动化的个人项目,我有一个树莓派和一个arduino Uno板。 我想传达树莓派和我的arduino,在这里我的树莓应该能够向arduino读写信号。 我认为它们之间的距离大约为10至15米。 我需要什么?我需要哪种导线或其他组件来实现我的目标?我再说一遍:我不想无线通信树莓派和arduino。 谢谢!
11 serial  uart 

3
Arduino上的高精度时序用于串行通信
我正在使用Arduino Uno通过串行端口将时间和电压信息发送到Python进行绘图。但是,连续时间戳之间的间隔时间似乎随着时间而增加,影响了我的绘图。当波特率设置为9600时尤其如此,我的初始时间差可能是1320,而在相对较短的时间后增加到16400。当此速率设置为最大115200 bps时,即使经过较长时间的发送,更改也较慢且不那么明显,从1340到1500。所有时间均以微秒为单位。 我想知道我是否可以减少或消除这种影响,以及是否不知道为什么存在。我已经阅读了有关引起这种情况的中断和延迟的内容,但是我不完全了解当前电子设备的复杂性,并且想知道: 我可以在时间上获得更高的精度吗? 是什么原因导致时间变化? 这是我目前拥有的: #include <eHealth.h> extern volatile unsigned long timer0_overflow_count; float fanalog0; int analog0; unsigned long time; byte serialByte; void setup() { Serial.begin(9600); } void loop() { while (Serial.available()>0){ serialByte=Serial.read(); if (serialByte=='S'){ while(1){ fanalog0=eHealth.getECG(); // Use the timer0 => 1 tick every 4 us time=(timer0_overflow_count << …

3
将所有引脚用作数字I / O
增加数字引脚的数量 有许多文章解释了如何不仅在各种arduino上使用标准引脚,而且都没有正确解释局限性和问题。 Arduino Uno: 1.您可以使用模拟引脚 Pin 14 = Analog in 0 Pin 15 = Analog in 1 Pin 16 = Analog in 2 Pin 17 = Analog in 3 Pin 18 = Analog in 4 Pin 19 = Analog in 5 digitalWrite(14,HIGH); or digitalWrite(A0,HIGH); 2.您不能同时使用SDA,SCL和A4,A5,因为它们基本相同(18,19)。 3.您也可以使用TX / RX。 “不这样做,您就中断了串行通信……” “切勿使用引脚0和1” …

2
/ dev / ttyACM0和/ dev / ttyS0之间的区别(Linux下的Arduino IDE端口)
我使用Arduino IDE将草图上传到Arduino Uno。我的操作系统是Linux Ubuntu 14.04 LTS。Arduino IDE默认具有两个用于与Arduino Uno通信的端口: /dev/ttyACM0 /dev/ttyS0 这两个端口有什么区别? “ ACM0”和“ S0”是什么意思? OS文件夹结构中是否有配置文件描述这些端口的参数? 我知道选择/dev/ttyACM0时就可以将数据发送到Arduino Uno。但是,当我选择时它不起作用/dev/ttyS0。 我只是想更好地了解这些端口的确切含义。

1
如何从软件重置Arduino
如您所知,当打开串行监视器时,Arduino IDE会重置Arduino。我也希望我的程序能够做到这一点。但是我不知道如何。 我检查了Arduino IDE的源代码(Serial.java和SerialMonitor.java),但找不到它将reset命令发送到的位置。它在哪里? 我使用C#与串行通信。
10 serial  reset 



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.