Намоточный станок на ардуино.

Рабочие проекты Ардуино
Аватара пользователя
RASL94
Сообщения: 29
Зарегистрирован: 25 июл 2018, 19:10

Намоточный станок на ардуино.

Сообщение RASL94 » 09 авг 2018, 01:02

необходимо сделать плату управления для намоточного станка. количество оборотов хотелось бы считывать щелевым оптроном, управление двигателем через ШИМ. индикация на дисплее 1602, либо на трехразрядном семисегментном индикаторе, если на ЖК дисплее не будет хватать скорости обновления. Искал примеры в интернете, почему то даже нормальных счетчиков импульсов на ардуино нет. Плюс хотелось бы сделать кнопки для намотки заданного количества витков. с чего начать?


Аватара пользователя
RASL94
Сообщения: 29
Зарегистрирован: 25 июл 2018, 19:10

Re: Намоточный станок на ардуино.

Сообщение RASL94 » 10 авг 2018, 01:20

все работает на низких оборотах, но если обороты немного больше, то совсем не точно, и шим работает не адекватно. в чем может быть дело?

Код: Выделить всё

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++;// прибавляем единицу к полученому
}


Аватара пользователя
RASL94
Сообщения: 29
Зарегистрирован: 25 июл 2018, 19:10

Re: Намоточный станок на ардуино.

Сообщение RASL94 » 14 авг 2018, 21:09

простенький код, считает обороты(не определяет направление и без обратного хода) обороты двигателя управляются ШИМом

Код: Выделить всё

#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++; // счетчик времени
}

хотелось бы добавить определять направление и если перемотал витки определять сколько витков ты отматываешь, думаю добавить второй щелевой оптрон, может кто ни будь подскажет как все это реализовать?

TDA
Сообщения: 1
Зарегистрирован: 22 авг 2018, 15:32

Re: Намоточный станок на ардуино.

Сообщение TDA » 22 авг 2018, 15:34

Не скажу про оптрон, я делал так: https://youtu.be/IenFIIMIbyk
http://cxem.net/arduino/arduino235.php

Аватара пользователя
RASL94
Сообщения: 29
Зарегистрирован: 25 июл 2018, 19:10

Re: Намоточный станок на ардуино.

Сообщение RASL94 » 22 авг 2018, 16:20

TDA писал(а):Не скажу про оптрон, я делал так: https://youtu.be/IenFIIMIbyk
http://cxem.net/arduino/arduino235.php

у меня простой коллекторный двигатель постоянного тока, в итоге сделал на оптическом энкодуре, все работает нормально, единственное, при высоких оборотах перестает считать, скетч и схему скину чуть позже, когда доведу до ума)


Вернуться в «Проекты Ардуино»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей