Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Разработка
  3. Python
  4. Помогите разобраться с кодом !

Помогите разобраться с кодом !

Запланировано Прикреплена Закрыта Перенесена Python
2 Сообщения 1 Posters 21 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • piP Не в сети
    piP Не в сети
    pi
    написал в отредактировано
    #1

    Код выводит значение в виде AIN2=x ,где x получает от датчика нужн, что бы результаты были уже по формуле в градусах
    Формула : (x/255)51000/10

    #!/usr/bin/env python
    # Test program for ADC-DAC PCF8591P
    # 2016 https://ph0en1x.net
    
    import os
    import time
    from smbus import SMBus
    
    DEV_ADDR = 0x48
    adc_channels = {
        'AIN0':0b1000000, # 0x40 (foto-resistor)
        'AIN1':0b1000001, # 0x41 (thermistor)
        'AIN2':0b1000010, # 0x42 (not connected)
        'AIN3':0b1000011, # 0x43 (variable resistor)
    }
    dac_channel = 0b1000000 # 0x40
    
    bus = SMBus(1)          # 1 for RPi model B rev.2
    tmp = 0
    
    while(1):
        os.system('clear')
        print("Press Ctrl C to stop...\n")
        for channel in adc_channels:
            # read value from ADC input
            bus.write_byte(DEV_ADDR, adc_channels[channel])
            bus.read_byte(DEV_ADDR) # read last value
            bus.read_byte(DEV_ADDR) # repeat reading last value
            value = bus.read_byte(DEV_ADDR)
            if channel == 'AIN3':
                tmp = value
            print 'Channel ' + channel + ' ---> ' + str(value)
        # set value in DAC
        bus.write_byte_data(DEV_ADDR, dac_channel, tmp)
        time.sleep(0.1)
    
    
    1 ответ Последний ответ
    0
    • piP Не в сети
      piP Не в сети
      pi
      написал в отредактировано
      #2

      У вас форматирование кода поехало, в python оно крайне важно. На вскидку, нужно заменить строчку "print 'Channel ' + channel + ' ---> ' + str(value)" на:

      if channel == 'AIN2': ____print 'Channel ' + channel + ' ---> ' + str(ЗДЕСЬ_ВАША_ФОРМУЛА) else: ____print 'Channel ' + channel + ' ---> ' + str(value)
      _ заменить на пробел
      ЗДЕСЬ_ВАША_ФОРМУЛА подставить вашу формулу, в шапке формула неверна. Вместо 'x' пишите 'value'

      1 ответ Последний ответ
      0

      • Войти

      • Нет учётной записи? Зарегистрироваться

      • Login or register to search.
      • Первое сообщение
        Последнее сообщение
      0
      • Категории
      • Главная
      • Документация
      • Последние
      • Пользователи