-
Постов
243 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Сообщения, опубликованные Инженер!Туленков
-
-
Всем привет! Много лет не был на форуме, и вот в одной задумке зашел в тупик. В гугле был, в поиске по форуму тоже был - не помогло.
Попал в руки драйвер шагового двигателя TMC2130 V3.0 SPI. Данный модуль известен тем что он по SPI может вернуть данные о текущей нагрузке двигателя и другую интересную информацию.
По данному шилду очень мало информации. Получилось его запустить, но в режиме DIR/STEP.
Проблема: мало русскоязычной информации, много видео по запуску модуля на шилдах, но необходимо использовать сам модуль. В примерах только Dir/step управление.
Мой вопрос: работает ли этот драйвер чисто по SPI (+ - MISO, MOSI , SCK). И как это делается? Кто сталкивался? Есть ли примеры?
Прошу помощи) Благодарю за любые полезные ответы
ЦитатаОписание шилда: https://github.com/bigtreetech/BIGTREETECH-TMC2130-V3.0
Библиотека: https://github.com/bigtreetech/TMC2130Stepper0 -
Такая изобретательская задача. Преобразователей логических уровней как шилдов - вагон, а вот транзисторных ключей - ноль.
0 -
1 минуту назад, Aleх сказал:
Ключ напрашивается. Или нет ?
Естественно, но есть еще одна проблема. Надо использовать только шилды. Шилда с оптопарами или ключами (кроме мосфетов) я не встречал. Вернее всё что встречал в коробочку в количестве из за проводов и объема не влезут...
0 -
Напряжение включения >2.5В. Номинальное управляющее от 3В. Ток срабатывания 20-25мА.
Да, не верно на цифровые пины данные реле соединять. Но, у людей, исходя из практического опыта 2 реле работает годами уже. В моем случае 5 не сработало.Как посоветуете решить вопрос?
0 -
Все решилось все таки использованием rs485 (дополнительной платой на max485). Обращение реализовали по ID. Usb провода отпали за ненадобностью.
П.С Использование системы openhab 1.8.3 на raspberry pi совместно с usb - очень, очень, очень гиблое дело. Библитеки Modbus serial очень глючнутые.
0 -
2 минуты назад, Aleх сказал:
Вопрос совершенно непонятен. Что значит "надо было резистор ~1кОм последовательно включать?" ?
Ограничительное сопротивление расчитывается по необходимому току в цепи и напряжению этой цепи.Напряжение питания 5В, для реле достаточно 4В, 20ма отсюда следует 50-56 ом, если рассчитать.
Вопрос в том что могло случиться с ардуиной? Почему перестала шиться?
0 -
Всем добрый вечер! Прошу помощи в странном деле.
Присутствует бутерброд - Arduino Nano + Ethernet шилд в который вставляется нано.
К пинам подключены твердотельные реле ssr-25DA - 5 штук.
Их характеристики:
Input voltage: 3-32VDC
Output voltage: 24-380VAC
Output current: 25A
Working voltage: 250V
On voltage: ≤1V
One-off Time: ≤10ms
Off leakage Current: ≤2mAРеле соединено по схеме:
В интернете у всех работает. Питание ардуины при этом было 500 мА. Ethernet шилд не был подключен к сети.
Был написан код который выставляет HIGH на 2,3,4,5,6 пине и через 5 секунд в LOW.
Все работало минут 10, потом смотрю одно реле работает, а остальные нет. Вынял ардуину, а она не шьется.
Я нагрузил каждый из пинов и вывел из строя ардуину?
0 -
Всем добрый вечер! Прошу помощи в странном деле.
Присутствует бутерброд - Arduino Nano + Ethernet шилд в который вставляется нано.
К пинам подключены твердотельные реле ssr-25DA - 5 штук.
Их характеристики:
Input voltage: 3-32VDC
Output voltage: 24-380VAC
Output current: 25A
Working voltage: 250V
On voltage: ≤1V
One-off Time: ≤10ms
Off leakage Current: ≤2mAРеле соединено по схеме:
В интернете у всех работает. Питание ардуины при этом было 500 мА. Ethernet шилд не был подключен к сети.
Был написан код который выставляет HIGH на 2,3,4,5,6 пине и через 5 секунд в LOW.
Все работало минут 10, потом смотрю одно реле работает, а остальные нет. Вынял ардуину, а она не шьется.
Я нагрузил по ~25 мА на каждый из пинов и вывел из строя ардуину, и надо было резистор ~1кОм последовательно включать?
0 -
3 минуты назад, Yurkin2015 сказал:
Чтобы различать подключенные платы, оставьте родные номера для VIP/PID и просто измените текст в строчке Device Description на "Vasya1", "Vasya2" и т.д. Тогда при втыкании Windows будет бодро рапортовать "Vasya1" подключён, и в списке подключённых USB устройств этот "Вася1" тоже будет виден.
О и правда, но опять же сh340. Я не нашел софта который меняет Device Description на сh340
0 -
Понял, спасибо огромное за ответы))))
0 -
3 минуты назад, Yurkin2015 сказал:
Если на плате стоит FT232RL, то для изменения VID/PID скачиваете фирменную программу FT_Prog и меняете на здоровье! Никаких перезаливок бутлоадеров не нужно, эти параметры записаны в самой FT232RL, а не в процессоре.
Только будьте готовы, что после изменения Windows начнёт ругаться "обнаружено неизвестное устройство" и перестанет узнавать Ардуино платы.
А если ch340 ?
0 -
Всем Привет! С Праздниками!
Прошу помощи с Arduino Nano. Возникла острая необходимость изменить VIP и PID. Подскажите, натолкните на верный путь пожалуйста.
Были закуплены 10 nano из китая, спаяны, а оказалось они все с одинаковыми VID и PID, но присутствует необходимость их различать именно по данным номерам.
На сколько я понял необходимо бутлоадер перезаливать, с помошью cp2102 c DTR сигналом - судя по информации из гугл не удастся. Необходим FTDI. Так ли это?
Или это возможно сделать прямо из Arduino IDE изменив какие то файлы?
0 -
ch340 это микруха "USB convert to serial".
Каким образом генерить? Через скетч можно что то уникальное приписать в информации о контроллере?
0 -
Добрый вечер форумчане! Создавая некий проект на Arduino и Raspberry возникла интересная ситуация.
Были закуплены 10 Arduino Nano v3 и подключены к raspberry. По незнанию и не сталкиванию ранее с данной темой увидел что Vendor ID Product ID одинаковые на всех ардуинах и Serial (код) вовсе отсутствует у всех ардуин.
В проекте необходимо что бы каждая ардуина была уникальная хоть в чем то.
Далее каждая уникальная ардуина будет привязана естественно к своему COM порту символьными ссылками для использования.
Каким образом можно придать уникальности каждой ардуине? Как изменить информацию? Возможно ли это осуществить через ch430?
Общий процесс я представляю. Интересует конкретное ПО или примеры из опыта.
0 -
Добрый вечер! Подскажите пожалуйста как в протеусе создать компонент. К примеру - микросхему аналоговую. Что бы не просто визуально, а что бы в симуляции она работала по нормальному.
Логично что изначально надо собрать схему из разных одиночных элементов, но как сохранить в компонент?
Ту же солнечную панель - визуально что бы был квадрат, а внутри были Battery Cell и выводы.
Уроки на ютубе рассказывают только про то как сделать визуально, правда зачем там задаются входы и\или выходы если никакого описания внутренней работы нового компонента не делается. Чего я не понимаю?
Благодарю.
0 -
я понял свою проблему)) я с таймером не умею работать. Буду читать. Благодарю за ответы))
0 -
Это управление шаговыми биполярными двигателями. Одинаковыми.
Изначально было вот так:
int speed=6; int i=0; for(i=0; i<100; i++) { PORTB=0b00000001; VDelay_ms(speed); PORTB=0b00000100; VDelay_ms(speed); PORTB=0b00000010; VDelay_ms(speed); PORTB=0b00001000; VDelay_ms(speed); } for(i=0; i<100; i++) { PORTD=0b10000000; VDelay_ms(speed); PORTD=0b00100000; VDelay_ms(speed); PORTD=0b01000000; VDelay_ms(speed); PORTD=0b00010000; VDelay_ms(speed); }
Сначала один мотор движется потом другой. Была необходимость сделать одновременное движение двигателей.
И было написано как выше, VDelay_ms(speed/2) = 3 и получилось так что по 3мс на каждой обмотке, и получилось 3мс на одну обмотку, 3мс на другую обмотку (второго двигателя) и получалось что между обмотками одного мотора было 6.Чередуя обмотки разных моторов.
Пример ниже:
PORTB=0b00000001; VDelay_ms(speed/2); //3мс 1обмотка 1двиг PORTD=0b10000000; VDelay_ms(speed/2); //3мс 1обмотка 2двиг PORTB=0b00000100; VDelay_ms(speed/2); //6мс между обмотками 1двиг. PORTD=0b00100000; VDelay_ms(speed/2); PORTB=0b00000010; VDelay_ms(speed/2); PORTD=0b01000000; VDelay_ms(speed/2); PORTB=0b00001000; VDelay_ms(speed/2); PORTD=0b00010000; VDelay_ms(speed/2);
Прошу прощения за много букв и кода.
В итоге получилось что 2 двигателя движутся одновременно.
Был заменен один двигатель, и первому на переключение надо speed=6, а второму необходимо speed=4 (Для одинаковой скорости) , надо сделать так что бы они работали одновременно. Если я их буду чередовать как выше то получится каша.
PORTB=0b00000001; VDelay_ms(speed); //3мс PORTD=0b10000000; VDelay_ms(speed2); //2мс PORTB=0b00000100; VDelay_ms(speed); //3мс получится 5мс между одним место 6ти. PORTD=0b01000000; VDelay_ms(speed); //2мс
И получится общее 5 мс. а надо одному 6 другому 4. Как тут быть?
0 -
Извиняюсь. В той теме опубликовал не по теме. И ответ был от человека который даже пост не прочитал. Советом было ввести вторую переменную. Но это не допусимо, так как не будет одновременного выполнения. И время между переключениями порта B и D будет совсем разное.
Код віше предназначен для управления 2-мя биполярными двигателями одновременно.
0 -
//Проблему выше решил))) Типичные синтаксические ошибки были))
Добрый вечер! Возник ступор в коде.
Изначально было int speed=6 и одновременно все переключалось с необходимой скоростью. На схеме поменялась деталь и теперь необходимо что быPORTB переключался с speed=6, а PORTD с speed=4. Что бы они одновременно переключались.
PORTB=0b00000001; VDelay_ms(speed/2); PORTD=0b10000000; VDelay_ms(speed/2); PORTB=0b00000100; VDelay_ms(speed/2); PORTD=0b00100000; VDelay_ms(speed/2); PORTB=0b00000010; VDelay_ms(speed/2); PORTD=0b01000000; VDelay_ms(speed/2); PORTB=0b00001000; VDelay_ms(speed/2); PORTD=0b00010000; VDelay_ms(speed/2);
Как тут быть? Подскажите пожалуйста
0 -
Добрый вечер! Возник ступор в коде.
Изначально было int speed=6 и одновременно все переключалось с необходимой скоростью. На схеме поменялась деталь и теперь необходимо что бы PORTB переключался с speed=6, а PORTD с speed=4. Что бы они одновременно переключались.
Как тут быть? Подскажите пожалуйста
PORTB=0b00000001; VDelay_ms(speed/2); PORTD=0b10000000; VDelay_ms(speed/2); PORTB=0b00000100; VDelay_ms(speed/2); PORTD=0b00100000; VDelay_ms(speed/2); PORTB=0b00000010; VDelay_ms(speed/2); PORTD=0b01000000; VDelay_ms(speed/2); PORTB=0b00001000; VDelay_ms(speed/2); PORTD=0b00010000; VDelay_ms(speed/2);
0 -
Товарищи, не получается.
int count_step, q[2]; char data_mes[7]; if(data_mes[0]=='1') { UART1_Write_Text("Proverka"); UART1_Write(10); UART1_Write(13); // q[0]=data_mes[1]-'0'; // q[1]=data_mes[2]-'0'; // q[2]=data_mes[3]-'0'; count_step=((data_mes[1]-'0')*100)+((data_mes[2]-'0'*10))+(data_mes[3]-'0'); UART1_Write(count_step); for(x=0; x<=count_step; x++) { UART1_Write(x); } }
data_mess[] - заполняется следующим образом.
i=0; while(1) { if(i==7) { break; } if (UART1_Data_Ready()) { uart_rd = UART1_Read(); data_mes[i]=uart_rd; i++; } }
data_mess[7] в таком виде 12341234
По первому data_mess[0] срабатывает условие. По первому, второму , третьему элементу - надо сделать трехзначное число, и запустить цикл такое количество раз как это число. Они символьные надо составить число.
Код:
count_step=((data_mes[1]-'0')*100)+((data_mes[2]-'0'*10))+(data_mes[3]-'0');
Не работает. В протеусе возвращается при выводе count_step неизвестный символ.
0 -
В нее надо указатель на char и на сколько я понимаю надо окончание строки \0 добавить?
0 -
Не получается с atoi..
char data_mes[7]; i=atoi(data_mes[1]); j=atoi(data_mes[2]); q=(i*10)+j; for(j=0; j<=q; j++) { UART1_Write_Text("*"); } UART1_Write(q);
0 -
Добрый вечер уважаемые!
На досуге возник легкий вопрос, но не могу найти на него ответ.
Каким образом конвертировать char в int в microC for Pic?
Имеется массив char data[7];
И элементы data[2] и data[3] содержат символы (цифры 4 и 7) .
Необходимо вызвать цикл for от 0 до 47.
Как конвертировать в int? И как составить число из двух элементов? (Плюс или точка? - нелепо пробовал.) функция atoi() не дала результатов
Функций не нашел. Прошу помощи. Благодарю
0
Вопросы от начинающих по МК
в МК для начинающих
Опубликовано
Всем привет! Вопрос по esp32, довольно каверзный. У esp32 есть несколько SPI. Два из них VSPI и HSPI. В документациях указано что они независимые.
Если есть 2 разных устройства подключенные к своим пинам VSPI и HSPI соотвественно, то по логике если 2 разные библиотеки использую каждая свой набор ног то все будет работать хорошо?
Физически устройства подключенны вот так:
HSPI cs-15 mosi-13 dc-12 clk-14 bysy - 27 -------- VSPI ss - 5 sck - 18 mosi - 23 miso - 19 busy - 17
Подскажите пожалуйста, есть ли какие то подводные камни при обновременном использовании VSPI HSPI?