Ничего не найдено :(
    В гостях у Самоделкина! » Темы » Ремонт, модернизация » Аналоговый вольтметр из сервомотора

    Аналоговый вольтметр из сервомотора


    В этой статье мы рассмотрим, как мастер-самодельщик реализовал свою идею изготовления вольтметра используя сервомотор.
    Для изготовления такого вольтметра мастер использует: Raspberry Pi с Raspian и с установленными модулями Pi-Plates Python 3, TINKER Pi-Plate, провода, сервомотор 9G, толстый картон, двусторонний скотч, оргстекло.

    Из картона мастер вырезает указательную стрелку.
    Аналоговый вольтметр из сервомотора

    Или можно напечатать ее на 3D-принтере. Файл для печати по этой ссылке.
    Стрелку закрепляет к рычагу сервомотора двусторонним скотчем.

    Из оргстекла вырезает панель.


    Прикручивает ее к корпусу сервомотора.

    Распечатывает шкалу (скачать файл можно здесь).

    Наклеивает шкалу на оргстекло.

    Подсоединяет серводвигатель к плате согласно схеме. Для измерения напряжения нужно использовать провода, подключенные к GND и AIN 1.

    Дальше нужно откалибровать вольтметр.
    Включает Raspberry Pi. Создает сеанс Python3, загружает модуль TINKERplate и устанавливает режим канала цифрового ввода-вывода 1, как «серво». Теперь сервопривод должен переместится в положение 90 градусов.
    Дальше устанавливает стрелку вольтметра на 6В.
    Вводит TINK.setSERVO (0,1,15), чтобы переместить стрелку в положение 0V.
    Вводит TINK.setSERVO (0,1,165), чтобы переместить сервопривод в положение 12V.
    При отклонении стрелки от заданных показаний нужно подкорректировать значения 15 и 165

    Дальше нужно загрузить код.
    import piplates.TINKERplate as TINK
    import time
    TINK.setDEFAULTS(0) #return all ports to their default states
    TINK.setMODE(0,1,'servo') #set Digital I/O port 1 to drive a servo
    
    lLimit=12.0 #The lower limit = 0 volts
    hLimit=166.0 #The upper limit = 12 volts
    
    while(True):
    	analogIn=TINK.getADC(0,1) #read analog channel 1
    	#scale the data to an angle in the range of lLimit to hLimit
    	angle=analogIn*(hLimit-lLimit)/12.0
    	TINK.setSERVO(0,1,lLimit+angle) #set servo angle
    	time.sleep(.1) #delay and repeat

    Все готово.
    Вопрос\тема автоматически публикуется в соц. сети сайта - следите и там за ответами:

    Источник (Source)
    Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

    Переделка канцелярского степлера для работы с листами любого размера

    Ремонт дисплея модуля Lego NXT

    Добавить комментарий

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Последние комментарии

    Все комментарии