我正在尝试将一个Arduino程序移植到Linux。我被困住了,因为我似乎找不到与Arduino在"Wire.h“中的函数相当的函数。
线头:
LinuxI2C-dev.h:
具体来说,我看不出我能做什么
Wire.request(address, num_of_bytes); //Request 4 bytes
int a = Wire.receive(); //Receive the four bytes
int b = Wire.receive();
int c = Wire.receive();
int d = Wire.receive();
Linux似乎不等同于从I设备中请
晚上好,
我一直在与我的硬盘进行SMBus通信,并且能够通过一个名为readwriteeverything的程序读取值。现在,我想创建自己的程序,在导入smbus的python中读写寄存器。因此,我决定将我的代码建立在这个示例的基础上:
from smbus import SMBus
bus = SMBus(1) # 0 = /dev/i2c-0 (port I2C0), 1 = /dev/i2c-1 (port I2C1)
DEVICE_ADDRESS = 0x15 #7 bit address (will be left shifted to add the read
我使用ads1115从类比传感器获取值到raspberry pi 3,但我很难从python中找到它们。
我使用SMBus库来获取i2c值,但是我无法找到如何实际获得模拟0 AIN0信道值。我发现ads1115的ads1115地址是0x48,但找不到AIN0通道的地址,因此命令smbus.read_byte_data(0x48, ???)没有第二个参数,我尝试了一些地址,比如0x00、0x01,但是它总是给出相同的值,即使传感器值应该改变。下面是我的代码:
from smbus import SMBus
import RPi.GPIO as GPIO
import time
def main
我一直在尝试编写读取文本文件的python代码,使其成为变量并使用i2c发送。这是代码:
import serial
import smbus
import time
import sys
from time import sleep
# for RPI version 1, use "bus = smbus.SMBus(0)"
bus = smbus.SMBus(1)
# This is the address we setup in the Arduino Program
address = 0x04
loopvar = 1
while loopvar ==
我编写了一个ATtiny1627作为I2C从站,以响应read_i2c_block_data()函数。基本上,它接收指示返回哪个变量的命令,并以4 bytes表示一个float回答。Raspberry Pi 4是I2C主程序,必须每500 is读取一次数据,但是以下代码无法工作:
main.py
import time
from smbus import SMBus
from struct import unpack
i2c = SMBus(1)
for i in range(10):
#address: 0x0A, command: 0x54, get 4bytes
bytes