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

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
主站蜘蛛池模板: 肇东市| 镇赉县| 浪卡子县| 鸡东县| 融水| 阿拉尔市| 屏东市| 芦山县| 普兰店市| 禄劝| 禹城市| 报价| 娄底市| 肇州县| 上蔡县| 乐安县| 永登县| 建湖县| 丰顺县| 皮山县| 乌兰浩特市| 西宁市| 台北市| 铁岭县| 鹰潭市| 西平县| 汝南县| 惠来县| 平遥县| 达拉特旗| 滦平县| 天津市| 轮台县| 阿图什市| 长岭县| 兖州市| 江门市| 乐山市| 邹城市| 偏关县| 轮台县|