Так то у дигиспарк, я то с Тинькой работаю, а то что она на плату Спарка припаяна - это ее проблемы. Да собственно в чем проблема, изменить 1 бит в фьюзах и будет пин вместо ресета и непрошиваемый мк. В готовом изделии и нефиг прошивать. А откачать при желании контроллер не сложно, я уже так делал. Тут памяти и так мало, а еще загрузчик в ней хранить зачем-то :)
Прошу не сильно пинать меня, так как "я не волшебник, а только учусь", но хотелось бы задать несколько вопросов. Есть вот такая железка от дядюшки Ляо:
Пытаюсь с её помощью и ATtiny85 MicroUSB сделать плавное управление обычным бытовым вентилятором на 220В.
Просветите пожалуйста, меня неуча - если я правильно понимаю, то схема очень напоминает аналог из 20-го сообщения, соответственно будет ли работать приведенный код или нет. Есть ли какие "подводные камни" в управлении вентилятором и обычных ламп?
Если у Вас есть железка, то какая именно религия не позволяет Вам просто взять и попробовать?
Да дело не в религии ;) У меня слёту дома не завелось ПО для прошивки из среды Arduino, так как usb-hub под рукой не оказалось. Сегодня притянул его на рабочее место, где онный имеется - все завелось. Перед этим два дня пробовал завести под Arduino Uno, перепробовал туеву хучу разного кода и подходов - не хочет корректно крутить вентилятор.
Сегодня нагуглил эту темку, дай думаю спрошу может кто пробовал "наступать на мои грабли" - за спрос же в нос не бьют пока ;)
Так то платка просто симистор с детектором ноля. Ну, можно к Тини прявязать. Из под Ардуино я не шил, там чета на вектор прерывания USB оно ругалось. Шил программатором.
Так то платка просто симистор с детектором ноля. Ну, можно к Тини прявязать. Из под Ардуино я не шил, там чета на вектор прерывания USB оно ругалось. Шил программатором.
{archive_file_path}(wiring.c.o): In function `__vector_4':
C:\Users\Ђ¤¬ЁЁбва в®а\AppData\Roaming\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/wiring.c:93: multiple definition of `__vector_4'
C:\Users\836D~1\AppData\Local\Temp\build7790090033196286548.tmp\dimmer_v3i2c.cpp.o:C:\Program Files\Arduino/dimmer_v3i2c.ino:44: first defined here
collect2.exe: error: ld returned 1 exit status
Ошибка компиляции.
В общем и целом думаю что плата первая была с брачком (потому как наотрез отказывалась определяться в ноутбуке и под Ubuntu и под Windows 10, но при этом в двух двругих ПК виделась), ну и потом спалил я её (потому как одним вечером перепутал питание с землей). В итоге купил новую - которая без проблем увиделась в том же ноутбуке и скетч от Arduino заработал "как родной".
#include "SoftSerial.h"
#include "TinyPinChange.h"
SoftSerial mySerial(3, 4);
#define ControlSimistor 1 // Выход на симистор, физический порт P1
#define ControlZero 2 // Вход контроля перехода через 0, физический порт P2
volatile byte dimming = 0; // Начальное значение мощности
void setup()
{
mySerial.begin(9600);
pinMode(ControlSimistor, OUTPUT); // Включаем работу выхода на симистор
pinMode(ControlZero, INPUT); // Переключаем контроль перехода через 0 на выход
digitalWrite(ControlZero, HIGH); // Активируем контроль перехода через 0
attachInterrupt(0, zero, RISING); // Внешнее прерывание контроля перехода через ноль
}
void zero() // Если есть переход через 0
{
if (dimming >= 255) // Если задано максимальное значение
{
digitalWrite(ControlSimistor, HIGH); // Тиристор постоянно открыт
}
else if (dimming <= 10) // Если минимум
{
digitalWrite(ControlSimistor, LOW); // Тиристор закрыт
}
else if (dimming > 10 && dimming < 255) // Если не минимум и не максимум
{
digitalWrite(ControlSimistor, LOW); // Сначала закрываем
delayMicroseconds((5100 - dimming * 20)); // Ждем
digitalWrite(ControlSimistor, HIGH); // Открываем тиристор
}
}
void loop()
{
if (mySerial.available())
{
dimming = mySerial.read();
}
}
Значения мощности на вентилятор передавал с Arduino Uno.
Плохо что с delay, с таймером можно и 3 канала сделать.
Ну тут "дело хозяйское" - мне нужно управлять всего лишь одним тиристором, но ничто не мешает управлять большим количеством (кроме количества пинов). Реализация без delay делается в приницпе довольно просто.
Подскажите пожалуста, из сабжевого скетча нельзя убрать i2c, чтобы осталось только ШИМ управление и можно было использовать вместо 85 значительно более дешевую 13 тньку ?
Не компилируется этот скетч под attiny13 в arduino ide, выдаёт кучу ошибок
C:\Users\YraY\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Digispark_Examples\Start\Start.ino: In function 'void setup()':
Start:23: error: 'TCCR1' was not declared in this scope
TCCR1 = 0; // stop timer
^
Start:24: error: 'OCR1A' was not declared in this scope
OCR1A = 50; //initialize the comparator
^
Start:25: error: 'TIMSK' was not declared in this scope
TIMSK = _BV(OCIE1A) | _BV(TOIE1); //interrupt on Compare Match A | enable timer overflow interrupt
^
In file included from c:\users\yray\appdata\local\arduino15\packages\arduino\tools\avr-gcc\4.9.2-atmel3.5.4-arduino2\avr\include\avr\io.h:99:0,
from C:\Arduino\hardware\attiny13\avr\cores\core13/WProgram.h:22,
from C:\Arduino\hardware\attiny13\avr\cores\core13/Arduino.h:11,
from sketch\Start.ino.cpp:1:
Start:25: error: 'OCIE1A' was not declared in this scope
TIMSK = _BV(OCIE1A) | _BV(TOIE1); //interrupt on Compare Match A | enable timer overflow interrupt
^
Start:25: error: 'TOIE1' was not declared in this scope
TIMSK = _BV(OCIE1A) | _BV(TOIE1); //interrupt on Compare Match A | enable timer overflow interrupt
^
Start:28: error: 'attachInterrupt' was not declared in this scope
attachInterrupt(0, zeroCrossingInterrupt, FALLING);
^
C:\Users\YraY\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Digispark_Examples\Start\Start.ino: In function 'void zeroCrossingInterrupt()':
Start:33: error: 'TCCR1' was not declared in this scope
TCCR1 =0;
^
Start:34: error: 'TCNT1' was not declared in this scope
TCNT1 = 0; //reset timer - count from zero
^
Start:35: error: 'B00001010' was not declared in this scope
TCCR1 = B00001010; // prescaler on 1024, see table 12.5 of the tiny85 datasheet
^
C:\Users\YraY\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Digispark_Examples\Start\Start.ino: In function 'void TIMER1_COMPA_vect()':
Start:40: error: 'TCNT1' was not declared in this scope
TCNT1 = 255 - PULSE; //trigger pulse width, when TCNT1=255 timer1 overflows
^
C:\Users\YraY\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Digispark_Examples\Start\Start.ino: In function 'void TIMER1_OVF_vect()':
Start:45: error: 'TCCR1' was not declared in this scope
TCCR1 = 0; //disable timer stop unintended triggers
^
C:\Users\YraY\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\Digispark_Examples\Start\Start.ino: In function 'void loop()':
Start:55: error: 'OCR1A' was not declared in this scope
OCR1A = map(sensorValue, 0, 1023, 245, 2);
^
exit status 1
'TCCR1' was not declared in this scope
Ничем нельзя скомпилировать программу, которая использует таймер №1, которого попросту нет в целевом устройстве.
Судя по этому Вашему вопросу, ответ на Ваш изначальный вопрос
yray пишет:
нельзя убрать i2c, чтобы осталось только ШИМ управление и можно было использовать вместо 85 значительно более дешевую 13 тньку ?
должен быть: нет, Вам нельзя. Чтобы это сделать, нужно переписать программу (а, скорее всего, и библиотеки, заодно), а Вы, похоже, не понимаете, что там написано.
с скетче вроде только один таймер задействован, если использовать таймер 0 получится ?
С той, квалификацией, которую Вы сейчас демонстрируете - нет. Если займётесь этим серьёзно, изучите матчасть, навостритесь что-то делать самостоятельно, то, конечно, получится.
я тут решил недавно впихнуть в Attiny85 библиотеку Wire чтоб с oled дисплеем работать, в итоге плюнул - знаний явно не хватает (или переписывать с нуля буду месяцев так несколько), нашел TinyWireM - влезла, но впереди еще прикрутить датчик BME280 - а там уже наверняка придется ручками по I2C с ним работать, библиотек облегченных не нашел.
Так что у вас два пути: писать/оптимизировать самому библиотеки для attiny13 ну или выбрать МК подороже.
Есть секретный сайт, о котором знают только посвящённые и никогда никому про него не говорят (как бы меня не казнили за то, что я Вам скажу). Называется GitHub.
Да с i2c там не сложно же ручками. Попривыкали к библиотекам!
Там не надо ручками. У Тиньки есть довольно универсальный протокол USI который можно использовать и как SPI (примеры есть в даташите на тиньку) и как I2C - примеры есть в appnote от Atmel (вернее, там есть ссылка на страницу с примерами - http://start.atmel.com/#examples/)
Ручками - это команду по адресу послать и ответ прочитать. А если там (о ужас!) еще и 2-3 байта прилетит, то из них надо значение выковырять. Для избалованных либами эта задача может сложной оказаться. Ну, тут либо Тинька, либо либы.
Через arduino ide по usb в режиме digispark он не компилируется, в режиме attiny через arduino isp выпаянная из digispark 85 не прошивается как я понимаю из за залитого в неё загрузчика digispark - как прошить ваш скетчь в 85 тиньку из digispark ?
И ни одну прошить не могу через USB. У них загрущика штоли нету?
там же нужно ловким движением в нужное время втыкать ега в юсб и оно прошивается в момент подключения в юсб - т.е. жмёшь кнопку "загрузить" и только затем тебя попросить воткнуть в юсб. О_О
Да, попадаются Спарки без загрузчика. И даже с залоченным ресетом.
Шью как обычную Attiny программатором. Сделал переходник для UsbAsp и готово. Аккуратно, если из Arduino IDE зашить загрузчик в Digispark, то пин ресета залочится. Такие фьюзы выставлены в boards.txt и никто их менять походу не собирается.
С PB5 и я могу работать :)
А у моей дигиспарк платы ресет залочен, тоесть он работает как ресет.
Так то у дигиспарк, я то с Тинькой работаю, а то что она на плату Спарка припаяна - это ее проблемы. Да собственно в чем проблема, изменить 1 бит в фьюзах и будет пин вместо ресета и непрошиваемый мк. В готовом изделии и нефиг прошивать. А откачать при желании контроллер не сложно, я уже так делал. Тут памяти и так мало, а еще загрузчик в ней хранить зачем-то :)
Незачем, просто лень собирать HV программатор.
Диммер теперь и по ШИМ рулится.
Пруф https://www.youtube.com/watch?v=wXA2jGXWzno
Диммер теперь и по ШИМ рулится.
Пруф https://www.youtube.com/watch?v=wXA2jGXWzno
Схемку приложите?
На первой странице.
Вот схема. Плату могу показать, но буду переделывать.
А какие номиналы RC фильтра? Или Вы сделали без него?
Я сделал 100Ом и 1000мкФ.
Добрый день!
Прошу не сильно пинать меня, так как "я не волшебник, а только учусь", но хотелось бы задать несколько вопросов. Есть вот такая железка от дядюшки Ляо:
Пытаюсь с её помощью и ATtiny85 MicroUSB сделать плавное управление обычным бытовым вентилятором на 220В.
Просветите пожалуйста, меня неуча - если я правильно понимаю, то схема очень напоминает аналог из 20-го сообщения, соответственно будет ли работать приведенный код или нет. Есть ли какие "подводные камни" в управлении вентилятором и обычных ламп?
Есть вот такая железка ... будет ли работать
Если у Вас есть железка, то какая именно религия не позволяет Вам просто взять и попробовать?
Если у Вас есть железка, то какая именно религия не позволяет Вам просто взять и попробовать?
Да дело не в религии ;) У меня слёту дома не завелось ПО для прошивки из среды Arduino, так как usb-hub под рукой не оказалось. Сегодня притянул его на рабочее место, где онный имеется - все завелось. Перед этим два дня пробовал завести под Arduino Uno, перепробовал туеву хучу разного кода и подходов - не хочет корректно крутить вентилятор.
Сегодня нагуглил эту темку, дай думаю спрошу может кто пробовал "наступать на мои грабли" - за спрос же в нос не бьют пока ;)
Так то платка просто симистор с детектором ноля. Ну, можно к Тини прявязать. Из под Ардуино я не шил, там чета на вектор прерывания USB оно ругалось. Шил программатором.
Так то платка просто симистор с детектором ноля. Ну, можно к Тини прявязать. Из под Ардуино я не шил, там чета на вектор прерывания USB оно ругалось. Шил программатором.
"Пользуясь случаем"© Хочу Вас поблагодарить за проделанный труд, о результатах моих отпишусь вечером.
Да не за что, а труд тут коллективный. Если получится отвязаться от ошибки IDE буду признателен. Не у всех программатор есть.
Да не за что, а труд тут коллективный. Если получится отвязаться от ошибки IDE буду признателен. Не у всех программатор есть.
Эмм... Вы наверное это имели ввиду?
Решил попробовать прошить скетч, и вывалилась такая ошибка. Нагуглилось решение прошивки ATtiny85 с помощью самой ардуины.
В общем и целом думаю что плата первая была с брачком (потому как наотрез отказывалась определяться в ноутбуке и под Ubuntu и под Windows 10, но при этом в двух двругих ПК виделась), ну и потом спалил я её (потому как одним вечером перепутал питание с землей). В итоге купил новую - которая без проблем увиделась в том же ноутбуке и скетч от Arduino заработал "как родной".
Значения мощности на вентилятор передавал с Arduino Uno.
А скетч такой откуда?
Сам написал - изначально пробовал его для arduino, на тиньке тоже без проблем встал.
Плохо что с delay, с таймером можно и 3 канала сделать.
Плохо что с delay, с таймером можно и 3 канала сделать.
Ну тут "дело хозяйское" - мне нужно управлять всего лишь одним тиристором, но ничто не мешает управлять большим количеством (кроме количества пинов). Реализация без delay делается в приницпе довольно просто.
Подскажите пожалуста, из сабжевого скетча нельзя убрать i2c, чтобы осталось только ШИМ управление и можно было использовать вместо 85 значительно более дешевую 13 тньку ?
...использовать вместо 85 значительно более дешевую 13 тньку ?
13 -55р.
85 -110р.
Это в ЧипДипе, не на Али, где 41 и 65, если за 10 и больше.
Аху..нная разница в цене. Это я еще ДИП корпуса сранивал, что дороже.
Даже для мелкого производства 25 рублей разницы -- разорительны. ;)
========================
Поочему нас окружают идиоты? Если что - вопрос чисто риторический.
...использовать вместо 85 значительно более дешевую 13 тньку ?
13 -55р.
85 -110р.
Это в ЧипДипе, не на Али, где 41 и 65, если за 10 и больше.
Аху..нная разница в цене. Это я еще ДИП корпуса сранивал, что дороже.
Даже для мелкого производства 25 рублей разницы -- разорительны. ;)
========================
Поочему нас окружают идиоты? Если что - вопрос чисто риторический.
расшифруй на языке русского-Чехова, а не ниггера-Пушкина, что ты имел ввиду - разорительна разница в цене 40% комплектующих или нет?
Клапауций! 40% это много... Для производства. 50р ничтожно для штучного изделия. Ок?
Я извиняюсь, что влез в ваш высоконаучный спор, но есть ешё attiny45 за 60 руб в чипе.
Не по ШИМ, а по напряжению на аналоговом входе рулица. Прерывание занято в диммере. Из ШИМ сделать постоянку не сложно конденсатором емким.
Не компилируется этот скетч под attiny13 в arduino ide, выдаёт кучу ошибок
Чемто еще его можно скомпилировать ?
А есть ли в Attiny13 такие регистры и счетчики?
Чемто еще его можно скомпилировать ?
Ничем нельзя скомпилировать программу, которая использует таймер №1, которого попросту нет в целевом устройстве.
Судя по этому Вашему вопросу, ответ на Ваш изначальный вопрос
должен быть: нет, Вам нельзя. Чтобы это сделать, нужно переписать программу (а, скорее всего, и библиотеки, заодно), а Вы, похоже, не понимаете, что там написано.
с скетче вроде только один таймер задействован, если использовать таймер 0 получится ?
с скетче вроде только один таймер задействован, если использовать таймер 0 получится ?
С той, квалификацией, которую Вы сейчас демонстрируете - нет. Если займётесь этим серьёзно, изучите матчасть, навостритесь что-то делать самостоятельно, то, конечно, получится.
я тут решил недавно впихнуть в Attiny85 библиотеку Wire чтоб с oled дисплеем работать, в итоге плюнул - знаний явно не хватает (или переписывать с нуля буду месяцев так несколько), нашел TinyWireM - влезла, но впереди еще прикрутить датчик BME280 - а там уже наверняка придется ручками по I2C с ним работать, библиотек облегченных не нашел.
Так что у вас два пути: писать/оптимизировать самому библиотеки для attiny13 ну или выбрать МК подороже.
Да с i2c там не сложно же ручками. Попривыкали к библиотекам!
библиотек облегченных не нашел.
Есть секретный сайт, о котором знают только посвящённые и никогда никому про него не говорят (как бы меня не казнили за то, что я Вам скажу). Называется GitHub.
Да с i2c там не сложно же ручками. Попривыкали к библиотекам!
Там не надо ручками. У Тиньки есть довольно универсальный протокол USI который можно использовать и как SPI (примеры есть в даташите на тиньку) и как I2C - примеры есть в appnote от Atmel (вернее, там есть ссылка на страницу с примерами - http://start.atmel.com/#examples/)
Ручками - это команду по адресу послать и ответ прочитать. А если там (о ужас!) еще и 2-3 байта прилетит, то из них надо значение выковырять. Для избалованных либами эта задача может сложной оказаться. Ну, тут либо Тинька, либо либы.
Ну, почему "либо - либо". Я же в посте #137 дал ссылку на библиотеку.
Потому что это аналог Wire, а надо чтоб еще для каждого i2c датчика своя либа влезала. Я так понял хотелки.
Какая ещё своя? I2C одной на всех хватит.
Мы щас об одном и том же говорим.
во вы флуд развели :)
чьи хотелки? мои? я то со своими сам думаю справлюсь, уж с последовательностью команд передачи/приема BME 280 как нибудь разберусь.
и я бы тоже почитал бы с удовольствием русский перевод даташита с толковыми комментариями :)
и я бы тоже почитал бы с удовольствием русский перевод даташита
Зачем в переводе-то? При любом, даже самом наикачественном переводе, всё равно какие-то нюансы оригинала будут потеряны.
Купить отдельную tiny без загрузчика
Блин. Недавно получил Дигиспарки
https://ru.aliexpress.com/item/5pcs-GY-Digispark-kickstarter-miniature-m...
В IDE для них все поставил как написана на скрижалях гугля.
И ни одну прошить не могу через USB. У них загрущика штоли нету?
И ни одну прошить не могу через USB. У них загрущика штоли нету?
там же нужно ловким движением в нужное время втыкать ега в юсб и оно прошивается в момент подключения в юсб - т.е. жмёшь кнопку "загрузить" и только затем тебя попросить воткнуть в юсб. О_О
Да, попадаются Спарки без загрузчика. И даже с залоченным ресетом.
Шью как обычную Attiny программатором. Сделал переходник для UsbAsp и готово. Аккуратно, если из Arduino IDE зашить загрузчик в Digispark, то пин ресета залочится. Такие фьюзы выставлены в boards.txt и никто их менять походу не собирается.
Я тут ролик про прошивку загрузчиков в Мегу делал, с Тини то же самое https://www.youtube.com/watch?v=ZTKsBBE9aGQ
Если сильно надо - сделаю видос и по шитью Спарков.