Jump to content
admin

Намоточный станок на Arduino версия 2.0

Recommended Posts

Дмитрий, большущее Вам человеческое спасибо. Все завелось. Да, надо переходить на полубайтовое подключение дисплея, но в наличии только с I2C. Распаивать не хочется. Завтра буду пробовать в работе.

Share this post


Link to post
Share on other sites
20.11.2019 в 03:08, bykowina сказал:

Библиотеку установил, скетч залил в Ардуино, на экране верхний ряд черных квадратов, самый последний символ просто  горизонтальные полосы. Что то подобное было описано в первой теме. Подключение проверял, библиотеку менял. Подключил дисплей непосредственно к Адруинке без энкодера. Увы все тоже самое. 

была такая-же проблема. Оказалось, что в скетче v2 перепутаны некоторые строчки и скобки в районе sei/ надо так-

 TCCR1B=(0<<WGM13)|(1<<WGM12)|(0<<CS12)|(0<<CS11)|(1<<CS10);                   // Режим работы таймера/счетчика - CTC (очистить таймер при достижении значения в регистре сравнения OCR1A)
  OCR1A = 20000;                                                                // Значение в регистре OCR1A определяет частоту входа в прерывание таймера и устанавливает скрость вращения двигателей
  sei();
 // lcd.begin(20,4);                                                              // Инициализация LCD Дисплей 20 символов 4 строки   
// lcd.begin(16,2);                                                               // Инициализация LCD Дисплей 16 символов 2 строки                                                              
  lcd.clear();
  sprintf(Str_Buffer, Menu[0].format);
  lcd.print(Str_Buffer);                                                        // Выводим первую строку на экран
  lcd.setCursor(0,1); 
  sprintf(Str_Buffer, Menu[1].format);
  lcd.print(Str_Buffer);                                                        // Выводим вторую строку на экран
 // PrintSymbol(0,0,0x3E);                                                        // Выводим символ ">" на 0,0 LCD
  } 

Share this post


Link to post
Share on other sites

добавил в схему две отдельные кнопки для управления укладчиком. Стало намного удобнее управлять им...Сейчас думаю как сделать ускорение на втором слое.

Edited by evkuch

Share this post


Link to post
Share on other sites

Вебинар «STM32L5. Секреты оценки энергопотребления» (05.11.2020)

Компания КОМПЭЛ приглашает 5 ноября принять участие в вебинаре, посвященном первому семейству МК STM32L5 на ядре Cortex-M33. На вебинаре будет рассказано об ошибках при расчете энергопотребления МК с помощью отладки STM32L562E-DK. Отладки STM32L562E-DK будут разыгрываться среди участников. Информация об условиях участия будет озвучена на вебинаре.

Подробнее

5 часов назад, evkuch сказал:

Оказалось, что в скетче v2 перепутаны некоторые строчки и скобки в районе sei/ надо так-

Команды sei и cli разрешают и запрещают прерывания, и как я уже писал выше I2C интерфейс использует прерывания для своей работы. Скобки и строчки не были перепутаны, а писались для полубайтового подключения LCD для работы которого прерывания не нужны.

Цитата

добавил в схему две отдельные кнопки для управления укладчиком. Стало намного удобнее управлять им...Сейчас думаю как сделать ускорение на втором слое.

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

Share this post


Link to post
Share on other sites

Как снизить потери мощности на 30%? Транзисторы SiC MOSFET.

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

Подробнее

6 часов назад, evkuch сказал:

добавил в схему две отдельные кнопки для управления укладчиком. Стало намного удобнее управлять им...Сейчас думаю как сделать ускорение на втором слое.

И замедление. Я тут попробовал запускать с плавным стартом и земедлением, тогда катушка с проводом без тормоза не делает петель. Скажем, как дополнительная опция.

Share this post


Link to post
Share on other sites

Нейросети в STM32G4 - пошаговое руководство!

Наличие программного пакета X-CUBE-AI, расширяющего функционал STM32CubeMX, поможет разработчику построить искусственную нейросеть на базе микроконтроллера из линейки STM32G4 производства STMicroelectronics. Статья включает пошаговое описание реализации такой нейросети.

Подробнее

20 часов назад, evkuch сказал:

// lcd.begin(20,4);                                                              // Инициализация LCD Дисплей 20 символов 4 строки   
// lcd.begin(16,2);                                                               // Инициализация LCD Дисплей 16 символов 2 строки                        

Если эта строка закомментирована, вторая строка выводится не правильно.

lcd.begin(16,2);                                                               // Инициализация LCD Дисплей 16 символов 2 строки            

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

evkuch

 Если можно выкладывайте схемы подключения и изменения в программе.

Edited by bykowina

Share this post


Link to post
Share on other sites
1 час назад, bykowina сказал:

Подсветка не загорается все равно...

lcd.backlight(); // Включение подсветки LCD

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

Share this post


Link to post
Share on other sites

Всем привет.

1. Возможно ли в данном станке использовать драйвер A4988?
Судя по этому видео, он работает стабильней, чем DRV8825 https://youtu.be/mRm1YJ9MCd4
На ардуино пока ничего не делал, но очень понадобился намоточный станок...

2. Каретку укладчика предлагаю опустить на основание и использовать линейную шину. Это придаст ей усточивости, как сделано в этом станке https://youtu.be/ViIQk28qawA

Share this post


Link to post
Share on other sites
1 час назад, useruser сказал:

Всем привет.

1. Возможно ли в данном станке использовать драйвер A4988?

2. Каретку укладчика предлагаю опустить на основание и использовать линейную шину.

1. Драйвера могут быть любые, поддерживающие микрошаг 1/16

2. Механика может быть любой

Share this post


Link to post
Share on other sites

 TDA 

Большое спасибо за терпение. :drinks:

Вставил фрагмент, меню выводится как надо. 

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

Share this post


Link to post
Share on other sites
3 часа назад, TDA сказал:

1. Драйвера могут быть любые, поддерживающие микрошаг 1/16

2. Механика может быть любой

Спасибо!

А для других драйверов надо будет в скетче что-то менять, или просто подключается аналогично и всё заработает?

И, можно ли использовать 2 двигателя Nema 17? Или для намотки катушки его не хватит?

Share this post


Link to post
Share on other sites
22.11.2019 в 04:16, TDA сказал:

Команды sei и cli разрешают и запрещают прерывания, и как я уже писал выше I2C интерфейс использует прерывания для своей работы. Скобки и строчки не были перепутаны, а писались для полубайтового подключения LCD для работы которого прерывания не нужны.

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

void loop() {
  buttonStater = digitalRead(RIGHT_BUT);/////////////////
  buttonStatel = digitalRead(LEFT_BUT);/////////////////
  buttonStatet = digitalRead(TURBO_BUT);/////////////////
  if ((buttonStater == LOW) && (buttonStatet == HIGH)) //(RIGHT_BUT ==LOW)
  {
     for(int x = 0; x < stepsPerRevolution; x++)/////////////////////РУЧНАЯ ПОДГОНКА УКЛАДЧИКА..................................................................
    {
    digitalWrite(EN_STEP, LOW); // разрешение управления двигателями 
    // digitalWrite(EN_STEP, HIGH); // Запрет управления двигателями
    digitalWrite(DIR_A, HIGH);// по часовй
    digitalWrite(STEP_A, HIGH);//////////////////////////
    delayMicroseconds(500);///////////////////////////2000
    digitalWrite(STEP_A, LOW);////////////////////////////
    delayMicroseconds(500);/////////////////////////2000
   
    }
}
 if ((buttonStater == LOW) && (buttonStatet == LOW)) //(RIGHT_BUT ==LOW)
  {
     for(int x = 0; x < stepsPerRevolution; x++)/////////////////////РУЧНАЯ ПОДГОНКА УКЛАДЧИКА..................................................................
    {
    digitalWrite(EN_STEP, LOW); // разрешение управления двигателями 
    // digitalWrite(EN_STEP, HIGH); // Запрет управления двигателями
    digitalWrite(DIR_A, HIGH);// по часовй
    digitalWrite(STEP_A, HIGH);//////////////////////////
    delayMicroseconds(50);///////////////////////////2000
    digitalWrite(STEP_A, LOW);////////////////////////////
    delayMicroseconds(50);/////////////////////////2000
   
    }
}
else{digitalWrite(EN_STEP, HIGH); // Запрет управления двигателями
     (buttonStater == HIGH);
}
  
 
     if ((buttonStatel == LOW) && (buttonStatet == HIGH)) ///(LEFT_BUT ==LOW)
     {      
      for(int y = 0; y < stepsPerRevolution; y++)/////////////////////
    {
    digitalWrite(EN_STEP, LOW); // разрешение управления двигателями
    digitalWrite(DIR_A, LOW);//против часовой
    digitalWrite(STEP_A, HIGH);//////////////////////////
    delayMicroseconds(500);///////////////////////////2000
    digitalWrite(STEP_A, LOW);////////////////////////////
    delayMicroseconds(500);/////////////////////////2000
    (buttonStatel == HIGH);
    }    
     }
       if ((buttonStatel == LOW) && (buttonStatet == LOW)) ///(LEFT_BUT ==LOW)
     {      
      for(int y = 0; y < stepsPerRevolution; y++)/////////////////////
    {
    digitalWrite(EN_STEP, LOW); // разрешение управления двигателями
    digitalWrite(DIR_A, LOW);//против часовой
    digitalWrite(STEP_A, HIGH);//////////////////////////
    delayMicroseconds(50);///////////////////////////2000
    digitalWrite(STEP_A, LOW);////////////////////////////
    delayMicroseconds(50);/////////////////////////2000
    (buttonStatel == HIGH);
    }    
     }
    else{digitalWrite(EN_STEP, HIGH);// Запрет управления двигателями
    (buttonStatel == HIGH);
    
  }
 //digitalWrite(EN_STEP, HIGH); // Запрет управления двигателями
    
  
    
  
if (Encoder_Dir != 0) {                                                       // Проверяем изменение позиции энкодера
  switch (Menu_Index) {                                                       // Если позиция энкодера изменена то меняем Menu_Index и выводим экран
    case Autowinding:  Menu_Index = constrain(Menu_Index + Encoder_Dir, Autowinding, PosControl);   break;
    case PosControl:   Menu_Index = constrain(Menu_Index + Encoder_Dir, Autowinding, PosControl);   break;

кнопки сидят  на пинах -d6,d9 и a0, общие контакты на  корпусе

          Arduino pinout diagram:
                             __________________
                             |      USB                       |
                             |                             GND|
                             |                                 13| DIR A  укладчик
                             |RESET                     12| STEP A Укладчик
                             |3V3                       #11| STOP BT
                             |5V                          #10| BUZ OUT
                             |GND                        #9|  RIGHT BUT /////////////
                             |VIN                            8| EN STEP
                             |                                     |
                             |                                    7| DIR Z  приемник
                             |                                  #6|  LEFT BUT/////////////////
  TURBO BUT // |A0 14                        #5| ENCODER CLK
              LCD EN |A1 15                          4| STEP Z  приемник
               LCD D4 |A2 16            INT1 #3| ENCODER SW
               LCD D5 |A3 17             INT0  2| ENCODER DT
        I2C LCD D6 |A4 18 SDA         TX 1|
        I2C LCD D7 |A5 19 SCL         RX 0|
                              |A6                              |    
                              |A7________________ 
                                    A0-                     

Edited by evkuch

Share this post


Link to post
Share on other sites

TDA 

А можно ли к намоточному станку ещё добавить подсчёт расхода проволоки в см? 

Share this post


Link to post
Share on other sites

Не нашел в городе энкодера, заменил на шд. Работает норм, только нужно включить подтягивающие резисторы.

il1.jpg.2fd8be396d9742c7ae9796046ca2c41f.jpg

il2.jpg.81606a5224a6b29d04b02cfc6b32e93d.jpg

encod_2.gif.592af341b6d5635669dfb1f38c1e029d.gif

Плата по ссылке. 

https://drive.google.com/open?id=15ELwwVApHylD6qp7zJblZNN6ML59alNn

Перед digitalWrite  убрать двойной слеш. 

41520627_.jpg.6e0a67594ffb8c43bb07cd8ca2a92289.jpg

 

 

 

Share this post


Link to post
Share on other sites

не могу найти в исходнике часть кода, который отвечает за ускорение приемного вала..

хочу доработать- плавное ускорение и торможение на каждом слое

Share this post


Link to post
Share on other sites
12 часов назад, Troll1 сказал:

Не нашел в городе энкодера, заменил на шд

в схемке преобразователя уровней логичнее было бы включить компараторы 339-е. Во первых с них фронты симпатичнее, во вторых гистерезис можно подобрать и имитировать работу ТШ для защиты от помех


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Подскажите. Как рассчитать шаг двигателя на 1 мм. ? И какое значение записать в строку #define ShaftStep ? У меня шаг резьбы 8 мм..

Share this post


Link to post
Share on other sites

вот такая конструкция получилась. сейчас бьюсь с регулировкой ускорения..... 

Но пока никак.....:help:

20191122_165601.jpg

20191122_165611.jpg

20191122_165605.jpg

Share this post


Link to post
Share on other sites

Привет всем кто интересуется проектом намоточного станка. Я сейчас немного занят другим проектом, так что не смогу оперативно отвечать на вопросы, просьбы и пожелания в данной теме. Как только освобожусь, перечитаю всю ветку форума еще раз и выпушу обновление ПО. Так что можете писать сюда, я все читаю.

 

Share this post


Link to post
Share on other sites

 VOIVOD, а точно, что шаг винта 8 мм? В строке кода подставляете свой шаг и все.  (#define ShaftStep 50 // ShaftStep = Шаг резьбы*50). Если реально шаг резьбы 8 мм, то цифра будет 400. А шаг на 1 мм зависит от количества шагов на 1 оборот вашего двигателя.

Share this post


Link to post
Share on other sites
1 час назад, Mech51 сказал:

 VOIVOD, а точно, что шаг винта 8 мм? В строке кода подставляете свой шаг и все.  (#define ShaftStep 50 // ShaftStep = Шаг резьбы*50). Если реально шаг резьбы 8 мм, то цифра будет 400. А шаг на 1 мм зависит от количества шагов на 1 оборот вашего двигателя.

Точно. У меня не шпилька, а шд с винтом. Увинта шаг 8 мм.. Мне не понятно откуда взялась цифра 50? Что это за коэффициент такой ? То что получилось 400 я и так расчитал. Это 400 импульсов на 1 мм. прохода сделает мой шд. 

Share this post


Link to post
Share on other sites
2 часа назад, VOIVOD сказал:

шаг 8 мм

И ни хрена себе ШАГ!!! Это какой же тогда диаметр у этого вала должен быть?


Я не раздаю рыбу. Я раздаю удочки.

ПРОСТОТА - ХУЖЕ ВОРОВСТВА!!!

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Регулировку тока пришлось убрать. Она работает за счет снижения напряжения и толком не работает. Придется делать внешнюю регулировку выходного тока. Пока ищу подходящую схему. Может кто-нибудь предложит  проверенную схему.
    • Кому ты нужен, убогий? Я тебя спросил, будешь ли свои симули собирать, а ты в ответ пургу понес. Симулируй свою херабру дальше, она никому не нужна все равно. Этим и отличаются симуляции с RCL от твоих: они интересны  и имеют реализации в железе. Пусть не самими авторами, но сборщиками, как я, и повторившими. И измерения имеют в железе. А у тебя что? Вот когда соберешь, отладишь, померишь, тогда и будешь рассуждать пространно о плюсах и минусах тех или иных решений. А пока ты просто балабол.  
    • В отличие от других я внимательный. В советской школе нас учили внимать информацию с пониманием её сути. Если прослеживать сюжетную линию нестыковки выявляются сами.
    • Отдохните, "дорогой", а то своей слюной уже всех забразгали, даже модератора ... А ещё спрашиваете - "где злой умысел" ...?
    • Уважаемый master90 разработал малогабаритную (45х65 мм) печатную плату для радиоприёмника с питанием микроконтроллера и дисплея ST7735 от источника +3,3 В. Кнопки любой конструкции распологаются на дополнительной плате и соединяются шлейфом с платой приёмника. Такой конструктивный подход позволит без проблем установить плату практически в любой корпус. Элементы и их номиналы на рисунке печатной промаркированы и отображаются при наведении на них курсора. Печатная плата опробована в работе. Я составил полную схему радиоприёмника в соответствии с этой печатной платой.   FM M328 ST7735 scan 3.3.lay6 SCHEMATIC1 _ FM_M328_ST7735_3,3.pdf

  • Плата Digispark Kickstarter на основе микроконтроллера ATTINY85

×
×
  • Create New...