操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    樹莓派開發板增加模擬信號接口

    大家可能已經在樹莓派開發板上發現了一個問題,樹莓派沒有模擬信號的輸入引腳,這意味著樹莓派不能直接處理模擬輸入信號,為了解決這個問題,本文將討論如何通過使用 A/D信號轉換器實現樹莓派模擬信號輸入的問題。

    是一個10位8通道的ADC(模擬數字轉換器),它使用SPI總線協議,價格便宜,也不需要使用額外的組件,不含電源和接地引腳 只占用4個樹莓派的引腳,

    就可以提供8個模擬信號輸入。 輸出最大值(2的10次方)= 1023,所以輸出的范圍是0-1023兩個模擬信號如何同時輸入到單片機,0表示0V,1023表示3.3V 。

    引腳定義

    ADC共有16個引腳,其中左側8個引腳用于接收模擬信號輸入,分別是CH0-CH7(引腳序號:1-8)。D.Groud是芯片的數字地,CS/SHDN是芯片選擇引腳,Din和Dout是數據輸入和輸出腳,CLOCK是時鐘,A.是模擬地,Vref是模擬基準電壓腳,Vdd/Vcc是供電引腳。

    打開樹莓派的SPI接口

    打開樹莓派的命令終端并輸入以下命令:sudo raspi-,

    樹莓派命令終端

    會彈出如下窗口

    樹莓派接口設置

    然后啟用SPI。

    樹莓派啟用SPI接口安裝NumPy

    關于NumPy將稍后進行討論。首先要安裝它,在終端中輸入以下命令 :

    sudo apt-get -numpy

    通過電位器控制LED的亮度

    首先,我們將嘗試使用電位器的模擬輸出值來控制LED的亮度。電路連接如下。

    樹莓派通過電位器控制LED的亮度

    我們先將樹莓派和按下表的對應關系完成連接。

    Pi

    VDD

    3.3V

    VREF

    3.3V

    AGND

    GND

    CLK

    DOUT

    GPIO9

    DIN

    CS

    GPIO8

    DGND

    GND

    然后,將10k電位計的中心引腳連接到的CH0上兩個模擬信號如何同時輸入到單片機,將電位計的另外兩端連接到3.3V和GND上。最后將LED的正極引腳(LED的長腳)連接到樹莓派的GPIO 20,再將220歐電阻從LED的負極引腳連接到樹莓派的GND。

    通過電位器控制LED的亮度的代碼

    # Importing modules
    import spidev # To communicate with SPI devices
    from numpy import interp	# To scale values
    from time import sleep	# To add delay
    import RPi.GPIO as GPIO	# To use GPIO pins
    # Start SPI connection
    spi = spidev.SpiDev() # Created an object
    spi.open(0,0)	
    # Initializing LED pin as OUTPUT pin
    led_pin = 20
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(led_pin, GPIO.OUT)
    # Creating a PWM channel at 100Hz frequency
    pwm = GPIO.PWM(led_pin, 100)
    pwm.start(0) 
    # Read MCP3008 data
    def analogInput(channel):
      spi.max_speed_hz = 1350000
      adc = spi.xfer2([1,(8+channel)<<4,0])
      data = ((adc[1]&3) << 8) + adc[2]
      return data
    while True:
    	output = analogInput(0) # Reading from CH0
    	output = interp(output, [0, 1023], [0, 100])
    	print(output)
      	pwm.ChangeDutyCycle(output)
      	sleep(0.1)

    其中,(,[0,1023],[0,100])函數用于將值從0-1023轉換到0-100。我們上面提到過 ADC的輸出范圍是0-1023,這里需要對應0-100的占空比,因此需要對這些值進行了轉換。

    樹莓派從TMP36讀取實時溫度

    解決了樹莓派模擬信號輸入的問題,現在,我們將使用樹莓派從TMP36的測量值中讀取并計算溫度值。電路圖如下所示:

    樹莓派從TMP36讀取實時溫度 實現代碼

    # Importing modules
    import spidev # To communicate with SPI devices
    from time import sleep  # To add delay
    # Start SPI connection
    spi = spidev.SpiDev() # Created an object
    spi.open(0,0) 
    # Read MCP3008 data
    def analogInput(channel):
      spi.max_speed_hz = 1350000
      adc = spi.xfer2([1,(8+channel)<<4,0])
      data = ((adc[1]&3) << 8) + adc[2]
      return data
    # Below function will convert data to voltage
    def Volts(data):
      volts = (data * 3.3) / float(1023)
      volts = round(volts, 2) # Round off to 2 decimal places
      return volts
     
    # Below function will convert data to temperature.
    def Temp(data):
      temp = ((data * 330)/float(1023))-50
      temp = round(temp)
      return temp
    while True:
      temp_output = analogInput(0) # Reading from CH0
      temp_volts = ConvertVolts(temp_output)
      temp       = ConvertTemp(temp_output)
     
      print("Temp : {} ({}V) {} deg C".format(temp_level,temp_volts,temp))
      sleep(5)

    以上通過將連接至樹莓派,實現了樹莓派連接模擬信號傳感器的問題,并通過電位器和TMP36兩個模擬元件做了相應的測試,要完成測試,請拷貝上面的代碼另存為.py文件,并在樹莓派命令行輸入: XXXX.py 來運行。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有