Намоточный станок на ардуино.
Намоточный станок на ардуино.
необходимо сделать плату управления для намоточного станка. количество оборотов хотелось бы считывать щелевым оптроном, управление двигателем через ШИМ. индикация на дисплее 1602, либо на трехразрядном семисегментном индикаторе, если на ЖК дисплее не будет хватать скорости обновления. Искал примеры в интернете, почему то даже нормальных счетчиков импульсов на ардуино нет. Плюс хотелось бы сделать кнопки для намотки заданного количества витков. с чего начать?
Re: Намоточный станок на ардуино.
все работает на низких оборотах, но если обороты немного больше, то совсем не точно, и шим работает не адекватно. в чем может быть дело?
Код: Выделить всё
volatile byte rpmcount;
unsigned int rpm; // сохраняем обороты
int a=0;
volatile unsigned int dist, distantion = 0;
const int buttonPin = 2;
int buttonState = 0;
#include <LiquidCrystal.h> // библиотека экрана
LiquidCrystal lcd(12, 11, 10, 8, 7, 6);
#include <Button.h>
Button but1 (2, 50); // создание объекта для кнопки
void setup()
{
pinMode(buttonPin, INPUT);
Serial.begin(9600);
lcd.begin(16, 2); // инициализируем дисплей
pinMode (9, OUTPUT); // инициализация вывода 9 как "Выход"
attachInterrupt(1, rpm_fun, FALLING);// функция прерывания только при смене значения с 1 на 0
rpmVse = 0;
rpmcount = 0;
rpm = 0;
delay(5);
but1.flagClick = false;
}
void loop()
{
rpmcount = 0;
buttonState = digitalRead(buttonPin);
if (but1.flagClick == true){
rpm=0 ;
lcd.clear();
}
int sensorValue = analogRead (A0);
analogWrite (9, sensorValue*4);
lcd.setCursor(0, 1);
lcd.print(rpm);
Serial.println(rpm);
rpm = rpm+rpmcount;
rpmcount = 0;
}
void rpm_fun()
{
//обновляем счетчик
rpmcount++;// прибавляем единицу к полученому
}
Re: Намоточный станок на ардуино.
простенький код, считает обороты(не определяет направление и без обратного хода) обороты двигателя управляются ШИМом
хотелось бы добавить определять направление и если перемотал витки определять сколько витков ты отматываешь, думаю добавить второй щелевой оптрон, может кто ни будь подскажет как все это реализовать?
Код: Выделить всё
#include <TimerOne.h>
unsigned int timeCounter; // счетчик времени
volatile int rpmcount;
unsigned int rpm; // сохраняем обороты
#include <LiquidCrystal.h> // библиотека экрана
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
#include <Button.h>
Button but1 (3, 50); // создание объекта для кнопки сброса счетчика
void setup()
{ Timer1.initialize(250); // инициализация таймера 1, период 250 мкс
Timer1.attachInterrupt(timerInterrupt, 250); // задаем обработчик прерываний
Serial.begin(9600);
lcd.begin(16, 2); // инициализируем дисплей
pinMode (5, OUTPUT); // инициализация вывода 5 как "Выход"
lcd.setCursor(0, 0);
lcd.print("WINDING COILS");
lcd.setCursor(0, 1);
lcd.print("vitki");
attachInterrupt(0, rpm_fun, FALLING);// функция прерывания только при смене значения с 1 на 0
rpmcount = 0;
rpm = 0;
but1.flagClick = false;
}
void loop()
{
if ( but1.flagClick == true ) { //обнуляем значения, и очищаем дисплей
but1.flagClick = false;
rpm = 0;
lcd.setCursor(7, 1);
lcd.print("0 ");
}
else if ( but1.flagClick == false) {
rpmcount = 0;
int sensorValue = analogRead (A0);
analogWrite (5, sensorValue / 4);
lcd.setCursor(7, 1);
lcd.print(rpm);
Serial.println(sensorValue);
rpm = rpm + rpmcount;
}
}
void rpm_fun()
{
//обновляем счетчик
rpmcount++;// прибавляем единицу к полученому
}
void timerInterrupt() {
but1.filterAvarage(); // вызов метода фильтрации кнопки
timeCounter++; // счетчик времени
}
хотелось бы добавить определять направление и если перемотал витки определять сколько витков ты отматываешь, думаю добавить второй щелевой оптрон, может кто ни будь подскажет как все это реализовать?
Re: Намоточный станок на ардуино.
Не скажу про оптрон, я делал так: https://youtu.be/IenFIIMIbyk
http://cxem.net/arduino/arduino235.php
http://cxem.net/arduino/arduino235.php
Re: Намоточный станок на ардуино.
TDA писал(а):Не скажу про оптрон, я делал так: https://youtu.be/IenFIIMIbyk
http://cxem.net/arduino/arduino235.php
у меня простой коллекторный двигатель постоянного тока, в итоге сделал на оптическом энкодуре, все работает нормально, единственное, при высоких оборотах перестает считать, скетч и схему скину чуть позже, когда доведу до ума)
Re: Намоточный станок на ардуино.
Про схему и скетч не забыли? Интересно ведь.
Была мысль реализовать в этом проекте стабилизацию оборотов?
Была мысль реализовать в этом проекте стабилизацию оборотов?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей