Контроль освещения с Ардуино

Если вы хотите проверить класс и напечатать имя и ссылку на функцию для каждого метода с аргументом из двух аргументов, см. Блок кода ниже.

При проверке метода argspec, если у него есть два аргумента, первым в методе класса является «self», поэтому при вызове ему потребуется только один аргумент.

В приведенном ниже цикле: метод [0] - это имя, а метод [1] - ссылка на метод.

Я на самом деле не пробовал, но если вам нужно генерировать функции из класса во время выполнения, я думаю, что это верный путь к победе.

import inspect

class MyClass():
    def m1(self, o):
        return 'method1'
    def m2(self, o):
        return 'method2'

mc = MyClass()

for method in inspect.getmembers(mc): 
    if isinstance(method[1], type(mc.m1)): 
        if len(inspect.getfullargspec(method[1]).args) == 2: 
            print(f'mc.{method[0]}') 
            print(f'  mc.{method[1]}') 

>>> mc.m1
>>>  mc.<bound method MyClass.m1 of <funcs_from_class.MyClass object at 0x11181e6d8>>
>>>mc.m2
>>>  mc.<bound method MyClass.m2 of <funcs_from_class.MyClass object at 0x11181e6d8>>
16
задан Gerald Schneider 10 July 2014 в 13:24
поделиться

4 ответа

Альтернатива (и более безопасная, чем игра с симисторами - поверьте мне, один раз меня шокировала, и этого достаточно!) Использовать X-10 устройства домашней автоматизации.

Существует устройство ПК (RS232) (CM12U UK или CM11 US), с помощью которого можно управлять остальными. Вы также можете получить модули лампы, которые подходят между вашей лампой и настенной розеткой, что позволяет уменьшить яркость лампы, посылая сигналы по сети и модулям переключения, которые включают и выключают нагрузки.

Arduino имеет разъем RS232 уровня TTL ( это в основном то, что использует USB-соединение) - Контакты 0 и 1 на Diecimila, чтобы вы могли это использовать,

6
ответ дан 30 November 2019 в 23:14
поделиться

Большинство людей делает это с помощью двусторонних тиристорных переключателей. Двусторонний тиристорный переключатель похож на два диода в антипараллельном (параллельно, но с их инвертированной полярностью) с триггерным контактом. Двусторонний тиристорный переключатель проводит текущий в любом направлении только, когда это инициировано. После того, как инициированный, это действует как обычный диод, это продолжает проводить, пока текущие отбрасывания не ревут его порог.

Вы видите его как двунаправленный переключатель на линии переменного тока и можете варьироваться средний ток путем инициирования его в различные моменты относительно момента синусоидальный перекрестный нуль AC.

Примерно, это работает как это: В синусоидальном нуле AC Ваши диоды выключают, и Ваша лампа не получает питания. При инициировании диодов, скажем, на полпути посредством колебания синуса, Вы, лампа получит половину нормального тока, который это получило бы, таким образом, это освещает половиной из, он - питание до синусоидального перекрестного нуля снова. В этой точке Вы запускаете.

При инициировании двустороннего тиристорного переключателя раньше лампа станет текущей для более длинного временного интервала, светясь более яркий. Если Вы инициировали свой последний двусторонний тиристорный переключатель, Ваши более слабые свечения лампы.

То же относится к любой загрузке AC.

Это - почти тот же принцип PWM для DC. Вы включаете и выключаете свой текущий источник, более быстрый, чем Ваша загрузка может реагировать, количество времени, это включено, пропорционально току, который получит Ваша загрузка.

Как дела это с Вашим arduino?

Простыми словами необходимо сначала найти пересечение нулем электросети, затем Вы настраиваете таймер/задержку, и в его конце Вы инициировали двусторонний тиристорный переключатель.

Для обнаружения пересечения нулем, каждый обычно использует оптрон. Вы соединяете ведомую сторону разветвителя с электросетью и транзисторную сторону с контактом прерывания Вашего arduino. Можно соединить arduino IO контакты непосредственно к триггерам двусторонних тиристорных переключателей, bu я использовал бы другой оптрон только, чтобы быть на безопасной стороне.

Когда синусоидальная волна приближается к нулю, Вы получаете импульс на своем контакте прерывания. В этом прерывании Вы настраиваете таймер. чем дольше таймер, тем меньше приводит в действие Вашу загрузку, доберется. Вы также сбрасываете состояние контактов своих двусторонних тиристорных переключателей. В прерывании этих таймеров Вы устанавливаете свои контакты IO для инициирования двусторонних тиристорных переключателей.

Конечно, необходимо понять немного об аппаратной стороне, таким образом, Вы не жарите свою плату и записываете Ваш дом, И само собой разумеется, что необходимо бояться уничтожать себя при контакте с AC электросети =).

ВОТ проект, который запустил меня некоторое время назад. Это использует AVRs, таким образом, должно быть легко адаптироваться к arduino. Это также довольно завершено со схематикой. Их программное обеспечение находится немного на сложной стороне, таким образом, необходимо запустить с чего-то более простого.

4
ответ дан 30 November 2019 в 23:14
поделиться

Существует только тонна этого вида материала на сайте журнала Make. Я думаю, что можно даже найти некоторые примеры подобных взломов.

1
ответ дан 30 November 2019 в 23:14
поделиться

Для начала вы можете приобрести себе диммерпак (50-80 евро за четыре лампы). затем соберите электронику для Arduino для отправки элементов управления DMX: Arduino DMX Shield

Вы получите как опыт работы с arduino, так и хороший шанс не поджечь окружающих более высоким напряжением ..

-1
ответ дан 30 November 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: