日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

树莓派实现AD转换(pcf8591模块)

發布時間:2025/3/12 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树莓派实现AD转换(pcf8591模块) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、樹莓派啟動I2C

  • 使用: ls /dev/命令可以查看I2C設備是啟動。

  • 如果沒有啟動執行 sudo raspi-config選擇 interfacing Options->I2C->yes啟動i2c內核驅動。

  • 使用sudo i2cdetect -y -a 1 命令可以查看是否配置好。因為我的I2c連接了數模轉換器PCF8591 ADC,所以顯示的48地址,同理,如果拔了這個設備就會顯示:

二、AD轉換

2.1 轉換模塊介紹

? PCF8591是一個8位模數轉換器或8位數模轉換器模塊,這意味著每個引腳可以讀取高達256的模擬值。它還具有板上提供的LDR和熱敏電阻電路。該模塊有四個模擬輸入和一個模擬輸出。它適用于I2C通信,因此SCL和SDA引腳用于串行時鐘和串行數據地址。它需要2.5-6V電源電壓并具有低待機電流。我們還可以通過調節模塊上電位器的旋鈕來控制輸入電壓。板上還有三個跳線。 J4連接選擇熱敏電阻接入電路,J5連接選擇LDR /光電阻接入電路和J6連接選擇可調電壓接入電路。要訪問這些電路,您必須使用這些跳線的地址:J6為0x50,J5為0x60,J4為0x70。電路板上有兩個LED,D1和D2 - D1表示輸出電壓強度,D2表示電源電壓強度。輸出或電源電壓越高,LED D1或D2的強度越高。

2.2 實現代碼

#include <wiringPi.h> #include <pcf8591.h> #include <stdio.h> #include <time.h>//PCF8591默認的I2C設備地址 #define Address 0x48//模擬信號輸入端的地址 #define BASE 0x40 #define A0 0x40 #define A1 0x41 #define A2 0x42 #define A3 0x43//供電(mV) #define POWER 5000//函數聲明 void ShowTime(); float AD_work(unsigned char channel);int main(void) {//初始化wiringPi設置wiringPiSetup();//設置pcf8591的器件地址pcf8591Setup(BASE, Address);float AD_val;while (1){AD_val=AD_work(A0);//讀取A0端口的電壓值ShowTime(); //打印當前時間printf("A0 value: %fmV\n", AD_val); //打印A0引腳的輸入電壓//printf("asgydasg");delay(100);} }//顯示系統時間 void ShowTime() {time_t t;struct tm *p;int hour = 0, min = 0, sec = 0;time(&t);p = gmtime(&t);hour = 8 + p->tm_hour; //獲取當地時間,與UTC時間相差8小時min = p->tm_min;sec = p->tm_sec;printf("\nNow time: %.2d:%.2d:%.2d\n", hour, min, sec); }float AD_work(unsigned char channel) {float AD_val; //定義處理后的數值AD_val為浮點數unsigned char i;for (i = 0; i < 10; i++) AD_val += analogRead(channel); //轉換10次求平均值(提高精度)AD_val /= 10;AD_val = (AD_val * POWER)/ 255 ; //AD的參考電壓是單片機上的5v,所以乘5即為實際電壓值return AD_val; }

編譯命令

gcc -adc.c -o adc -Wall -lwiringPi

2.3 結果顯示

2.3.1 GPIO口

2.3.2 連接示意圖

? 將pcf8591的SCL和SDA連接至樹莓派的SCL和SDA,AIN0接入模擬信號,相當于圖示中的A0口。

2.3.3 結果顯示

? 輸入5V,顯示結果正常

輸入3.3V,輸出一致

? 在監播機上的實際測量效果,測量信號強度電壓,1.008MHz,調制度90%。將D4上端輸入到pcf8591的AIN0端,GND接到監播機的PP5上端。測量結果顯示,顯示的數據與實際相差甚微。

信號強度(dBm)顯示電壓(mV)萬用表電壓(v)
-404443.154.43
-454336.134.33
-504217.604.21
-554066.654.06

總結

以上是生活随笔為你收集整理的树莓派实现AD转换(pcf8591模块)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。