官术网_书友最值得收藏!

Raspberry Pi GPIO header

The following screenshot is a chart of the GPIO pins of the Raspberry Pi Zero. In this case, we will use the SPI configuration interface (SPI_MOSI, SPI_MISO, SPI_CLK, SPI_CE0_N):

Raspberry Pi GPIO header

The following diagram shows the name of the pins of the MCP3008 chip that you connect to the Raspberry Pi: 

Raspberry Pi GPIO header

The following image shows the temperature sensor:

Raspberry Pi GPIO header

You need to connect the following pins according to the next description:

  • VDD to 3.3 volts
  • VREF to 3.3 volts from the Raspberry Pi Zero
  • Pin AGND to GND
  • Pin CLK (clock) to GPIO11 of the Raspberry Pi
  • DOUT to GPIO9
  • Pin DIN to GPIO10
  • Pin CS to GPIO8 and the pin
  • Pin the MCP3008D GND to Ground

This connection is represented in the following figure:

Raspberry Pi GPIO header

The following image shows the connections of the sensor to the ADC MCP3008 and the Raspberry Pi:

Raspberry Pi GPIO header

Reading the data with a Python script

In the next section, you will create the MCP3008.py file; you need to follow the next steps:

  1. Open the terminal on your Raspberry Pi Zero.
  2. Enter the interface in your Pi terminal.
  3. It's important to use nano before.
  4. Type sudo nano MCP3008.py.

It will appear on the screen and we will describe the following lines:

  1. Import libraries:
            import spidev1 
            import os1 
    
  2. Open the SPI bus:
            spi1 = spidev1.SpiDev1() 
            spi1.open(0,0) 
    
  3. Define the channels from the ADC MCP2008:
            def ReadChannel1(channel1): 
              adc1 = spi1.xfer2([1,(8+channel1)<<4,0]) 
              data1 = ((adc1[1]&3) << 8) + adc1[2] 
              return data1 
    
  4. The function to convert volts is as follows:
            def volts(data1,places1): 
              volts1 = (data1 * 3.3) / float(1023) 
              volts1 = round(volts1,places1) 
              return volts1 
    
  5. The function to convert temperature is as follows:
            def Temp(data1,places1): 
              temp1 = (data1 * 0.0032)*100 
              temp1 = round(temp1,places1) 
              return temp1 
    
  6. Define channels from the ADC:
              channels = 0 
    
  7. Define the reading time:
            delay = 10 
    
  8. The function to read the temperature is as follows:
            while True: 
     
              temp  = Channels(temp) 
              volts = Volts(temp1,2) 
              temp  = Temp(temp1,2) 
    
  9. Print the results:
            print"**********************************************" 
            print("Temp : {} ({}V) {} degC".format(temp1,volts,temp)) 
    
  10. Wait every 5 seconds:
            Time1.sleep(delay) 
    
  11. Run the Python file using the following command:
    sudo python MCP3008.py
    
  12. On the following screen, we can see the temperature, the ADC measurements, and the volts according to the temperature:
    Reading the data with a Python script
主站蜘蛛池模板: 西城区| 叙永县| 美姑县| 东光县| 林口县| 汪清县| 墨江| 东源县| 漳州市| 葫芦岛市| 米林县| 连州市| 岳普湖县| 衡山县| 大同市| 吴川市| 正蓝旗| 太白县| 囊谦县| 海阳市| 滦平县| 左云县| 常宁市| 霍邱县| 延安市| 思茅市| 五家渠市| 同德县| 玛纳斯县| 宜宾县| 蒲城县| 云梦县| 茶陵县| 望城县| 康平县| 山西省| 铜陵市| 大同市| 杭锦后旗| 哈巴河县| 济宁市|