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

Импульсный источник питания - расчет за 10 минут в eDesignSuite

Как ориентироваться в огромном количестве существующих вариантов, чтобы выбрать наиболее подходящий для конкретного случая. «Ручной» перебор всех вариантов может оказаться весьма трудоемким процессом, а полученный результат – далеко не оптимальным. Специализированное программное обеспечение, позволяет уменьшить количество рутинных операций при проектировании.

Подробнее

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

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

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

Цитата

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

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

Share this post


Link to post
Share on other sites
                     

Как упростить выбор ИП для промышленного применения?

Компания Mean Well выпускает широкий перечень встраиваемых источников питания с креплением на шасси, имеющих, на первый взгляд, схожие характеристики. Статья расскажет о ключевых особенностях выпускаемых семейств и упростит выбор источника питания для промышленного применения.

Подробнее

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

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

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

Share this post


Link to post
Share on other sites
                     

Преимущества новых высоковольтных SOI-драйверов Infineon

При производстве драйверов силовых транзисторов компания Infineon использует различные технологии: JI, SOI, CT. Драйверы, выполненные с применением технологии SOI, имеют целый ряд преимуществ по сравнению с классическими JI-драйверами. В статье рассматриваются эти преимущества на примере новых семейств драйверов 650 В 2ED210x и 2ED218x.

Подробнее

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...

  • Сообщения

    • Ну, у нас тут форум самодельщиков, а не клиентов всяких-там-разных-магазинов. Нам такая "проблема" вообще не понятна - бесплатно питаем свои самоделки от мощных литий-ионных банок и в... ус не дуем. Ищите ответ на форумах обывателей - клиентов магазинов ("кладоискательских"), кто и что там юзает.
    • Отдать тому, кто сможет, выбросить на помойку, разобрать на детали, и т.д....
    • а как же его назвать ? Регулятором мощности? Напряжения ? Тока ? Он вообще ни за чем не следит. Но это все-же, регулятор.  ШИР используется для регулирования оборотов посредством линейного изменения среднего напряжения на PMDC электромоторе, безо всякой стабилизации. Зависимость частоты вращения ХХ PMDC от напряжения на клеммах хорошо известна, и для ее характеристики используют коэффициент Kv (оборотов в минуту на Вольт поданного напряжения).  Эта простая и тупая зависимость Sхх=Kv*D*Uвх и наличие современных АКБ с низкими потерями, позволяют получать более-менее прозрачное и предсказуемое регулирование оборотов PMDC даже без обратных связей и стабилизаций чего-либо.
    • Это же оно? По высоковольтной части так же все что для 12 что для 18в? Отличаются диодный мост в схеме и резисторы стоят 330 ком а у меня было на старых написано 1R5 это же 1.5 ом.
    • Крайне редко, но всё же иногда люблю вместо метки использовать PC+- Как правило если много переходов в одном месте и на небольшие "расстояния" нужны. Лень эти метки выдумывать. Да и текст они засоряют изрядно. Часть кода где это использую обрамляю комментариями соотв. или в виде макроса оформляю. И уже в макросе комментарии. Если лень считать смещение, то сначала компилирую с реальной меткой и уже по листингу выясняю нужное +-.
    • Подводя черту: выстрел в ногу - допустимо. Точка.  
    • Да так все и работает .Сейчас выпаял всю защиту оставив только вт8.Весь вопрос откуда такой большой импульс
×
×
  • Create New...