匿名
未登录
登录
丢石头百科
搜索
查看“树莓派系列教程:PCF8591 AD/DA”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
树莓派系列教程:PCF8591 AD/DA
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
树莓派本身没有AD/DA功能,如果树莓派外接模拟传感器,则必须外接AD/DA功能扩展板才能用。Pioneer 600扩展带有AD/DA芯片PCF8591,pcf8591带1通道8位DA,4通道8位AD,通过I2C控制。 <b><span style="font-size:9.0pt;font-family: 宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white">一、</b><b>DAC </b> 1<span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white">、bcm2835<span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white">程序 === cpp代码 === <syntaxhighlight lang="python"> #include <bcm2835.h> #include <stdio.h> #include <unistd.h> int main(int argc, char **argv) { char Buf[]={0,0}; unsigned char value=0; if (!bcm2835_init())return 1; bcm2835_i2c_begin(); bcm2835_i2c_setSlaveAddress(0x48); bcm2835_i2c_set_baudrate(10000); printf("start..........\n"); while(1) { Buf[0] = 0x40; Buf[1] = value++; bcm2835_i2c_write(Buf,2); printf("AOUT: %d\n",value); bcm2835_delay(20); } bcm2835_i2c_end(); bcm2835_close(); return 0; }</syntaxhighlight> <span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white"> <span style="font-size: 9.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma; mso-bidi-font-family:Tahoma;color:#555555;background:white">编译并执行 <syntaxhighlight lang="python"> gcc –Wall pcf8591.c –o pcf8591 –lbcm2835 sudo ./ pcf8591 </syntaxhighlight> <span style="font-size: 9.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma; mso-bidi-font-family:Tahoma;color:#555555;background:white"> 2、Python<span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white">程序 <syntaxhighlight lang="python"> #!/usr/bin/python # -*- coding:utf-8 -*- import smbus import time address = 0x48 cmd = 0x40 value = 0 bus = smbus.SMBus(1) while True: bus.write_byte_data(address,cmd,value) value += 1 if value == 256: value =0 print("AOUT:%3d" %value) time.sleep(0.01) </syntaxhighlight> <span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white"> <span style="font-size:9.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family: Tahoma;mso-bidi-font-family:Tahoma;color:#555555;background:white">执行程序 <syntaxhighlight lang="python"> sudo python pcf8591</syntaxhighlight> <span style="font-size:9.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family: Tahoma;mso-bidi-font-family:Tahoma;color:#555555;background:white"> 3、wiringPi<span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white">程序 <syntaxhighlight lang="python"> #include <wiringpi.h> #include <pcf8591.h> #include <stdio.h> #define Address 0x48 #define BASE 64 #define A0 BASE+0 #define A1 BASE+1 #define A2 BASE+2 #define A3 BASE+3 int main(void) { unsigned char value; wiringPiSetup(); pcf8591Setup(BASE,Address); while(1) { analogWrite(A0,value); printf("AOUT: %d\n",value++); delay(20); } } </syntaxhighlight> <span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white">编译并执行程序 <syntaxhighlight lang="python"> gcc –Wall pcf8591.c –o pcf8591 –lbcm2835 -lwiringPi sudo ./ pcf8591 </syntaxhighlight> <span style="font-size:9.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family: Tahoma;mso-bidi-font-family:Tahoma;color:#555555;background:white">二、ADC <span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white"> 1、bcm2835<span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white">程序 <syntaxhighlight lang="python"> #include <bcm2835.h> #include <stdio.h> #include <unistd.h> int main(int argc, char **argv) { char Buf[]={0}; unsigned char i; if (!bcm2835_init())return 1; bcm2835_i2c_begin(); bcm2835_i2c_setSlaveAddress(0x48); bcm2835_i2c_set_baudrate(10000); printf("start..........\n"); while(1) { for(i = 0;i < 4;i++) { Buf[0] = i; bcm2835_i2c_write_read_rs(Buf,1,Buf,1); bcm2835_i2c_read (Buf,1); printf("AIN%d:%5.2f ",i,(double)Buf[0]*3.3/255); } printf("\n"); bcm2835_delay(100); } bcm2835_i2c_end(); bcm2835_close(); return 0; }</syntaxhighlight> <span style="font-size: 9.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma; mso-bidi-font-family:Tahoma;color:#555555;background:white">编译并执行 <syntaxhighlight lang="python"> gcc –Wall pcf8591.c –o pcf8591 –lbcm2835 sudo ./ pcf8591 </syntaxhighlight> <span style="font-size: 9.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma; mso-bidi-font-family:Tahoma;color:#555555;background:white"> 2<span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white">、Python<span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white">程序 <syntaxhighlight lang="python"> #!/usr/bin/python # -*- coding:utf-8 -*- import smbus import time address = 0x48 A0 = 0x40 A1 = 0x41 A2 = 0x42 A3 = 0x43 bus = smbus.SMBus(1) while True: bus.write_byte(address,A0) value = bus.read_byte(address) print("AOUT:%1.3f " %(value*3.3/255)) time.sleep(0.1) </syntaxhighlight> <span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white"> <span style="font-size:9.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family: Tahoma;mso-bidi-font-family:Tahoma;color:#555555;background:white">执行程序 <syntaxhighlight lang="python"> sudo python pcf8591</syntaxhighlight> <span style="font-size:9.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family: Tahoma;mso-bidi-font-family:Tahoma;color:#555555;background:white"> 3、wiringPi<span style="font-size:9.0pt;font-family:宋体; mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family: Tahoma;color:#555555;background:white">程序 <syntaxhighlight lang="python"> #include <wiringpi.h> #include <pcf8591.h> #include <stdio.h> #define Address 0x48 #define BASE 64 #define A0 BASE+0 #define A1 BASE+1 #define A2 BASE+2 #define A3 BASE+3 int main(void) { int value; wiringPiSetup(); pcf8591Setup(BASE,Address); while(1) { value = analogRead(A0); printf("Analoge: %dmv\n",value*3300/255); delay(1000); } }</syntaxhighlight> <span style="font-size: 9.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma; mso-bidi-font-family:Tahoma;color:#555555;background:white">编译并执行程序 <syntaxhighlight lang="python"> gcc –Wall pcf8591.c –o pcf8591 -lwiringPi sudo ./ pcf8591</syntaxhighlight> == 系列教程 == {{Raspberry Pi Study}}
该页面使用的模板:
模板:Raspberry Pi Study
(
查看源代码
)
返回至
树莓派系列教程:PCF8591 AD/DA
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志