#51 2016-03-15 19:08:15

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Nefreemen, для такой схемы крутить пока концевик не сработает или по времени?

Неактивний

#52 2016-03-15 19:34:09

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Надо смотреть (вспомнить)  roll если не ошибаюсь концевик работает на разрыв. Реле которое включает двигатель включается другим реле и кнопкой ручного поворота. Точно не помню big_smile столько было переделок  big_smile . Помню только что были какие то проблемы с ручным поворотом, и решить просто и быстро можно было только  установив другое реле.
Время рассчитать не реально. Асинхронник  big_smile разная нагрузка короче тот еще гемор.

Остання редакція Nefreemen (2016-03-15 19:36:32)

Неактивний

#53 2016-03-15 21:15:35

alex_dol
Учасник
Зареєстрований: 2015-12-28
Повідомлень: 196

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Библиотека здесь https://github.com/winlinvip/SimpleDHT
Можете обновить иде до 1,6,7 - она сама умеет обновлять и инсталить билиотеки

Неактивний

#54 2016-03-17 12:25:08

Dima
Учасник
Зареєстрований: 2016-01-13
Повідомлень: 46

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

NoName пише:

ну откЕдова  мне знать как он сделал? )
могу только сказать что при переднем или заднем фронте на 10 ноге он крутит  лоток
у Nefreemen  спросите

да на 10 ногу у меня реле подключено и после его с работки
нужно в ручную нажимать на кнопку +
чтоб оно отключилось
а мне нужно автоматически
а также чтоб двигатель знал когда и в какую сторону крутить

Остання редакція Dima (2016-03-17 12:26:27)

Неактивний

#55 2016-03-17 12:30:35

Dima
Учасник
Зареєстрований: 2016-01-13
Повідомлень: 46

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

да вот еще забыл почему постоянно горит светодиод на пин а0 авария

Неактивний

#56 2016-03-17 12:48:47

NoName
Customer
З Київ
Зареєстрований: 2014-07-08
Повідомлень: 1,446

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

http://forum.arduino.ua/viewtopic.php?pid=2622#p2622
alarmTemp не предустановлена,



//управляем авариями/////////////////////////////////////////////////////////////////////////////

void alarm() {
/* 
 float tempInk = sensors.getTempCByIndex(0);
  float alarmTemp;
  float setTemp;
  EEPROM_read(5, alarmTemp);
  EEPROM_read_mem(1, &setTemp, sizeof(setTemp));
  EEPROM_read(1, setTemp);
  //lcd.setCursor(0, 3);
  //lcd.print("A");
  //lcd.print(setTemp + alarmTemp, 1);
  if ((millis() - alarmDelay) > 1800000) {
    if (tempInk > (setTemp + alarmTemp) || tempInk < (setTemp - alarmTemp)) {
      beeper(10);
      digitalWrite(alarm_pin, LOW); //если измеренная температура выше заданной на величину аварии
    }
    else digitalWrite(alarm_pin, HIGH); //то включаем аварийный сигнал.
  }
*/
// выключил аварию 
        digitalWrite(alarm_pin, HIGH); 
  
  }

разберитесь как у Вас, авария нулем или + включется?

Неактивний

#57 2016-03-17 13:25:47

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Dima пише:
NoName пише:

ну откЕдова  мне знать как он сделал? )
могу только сказать что при переднем или заднем фронте на 10 ноге он крутит  лоток
у Nefreemen  спросите

да на 10 ногу у меня реле подключено и после его с работки
нужно в ручную нажимать на кнопку +
чтоб оно отключилось
а мне нужно автоматически
а также чтоб двигатель знал когда и в какую сторону крутить

Так как Вы собрались делать поворот? Если кривошип то двигатель может вращаться в одну сторону.

Неактивний

#58 2016-03-20 12:13:31

Dima
Учасник
Зареєстрований: 2016-01-13
Повідомлень: 46

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Так как Вы собрались делать поворот? Если кривошип то двигатель может вращаться в одну сторону.

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

Остання редакція Dima (2016-03-20 12:15:12)

Неактивний

#59 2016-03-20 19:42:10

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Dima пише:

Так как Вы собрались делать поворот? Если кривошип то двигатель может вращаться в одну сторону.

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

Так Вы определитесь чем вращаете. То сервой то шаговиком Вас не поймешь roll

Неактивний

#60 2016-03-20 20:04:44

Dima
Учасник
Зареєстрований: 2016-01-13
Повідомлень: 46

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Nefreemen пише:
Dima пише:

Так как Вы собрались делать поворот? Если кривошип то двигатель может вращаться в одну сторону.

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

Так Вы определитесь чем вращаете. То сервой то шаговиком Вас не поймешь roll


да шаговик из принтера на 4 тыре вывода

Неактивний

#61 2016-03-20 20:55:55

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Dima, если Вы думаете что главное это управление двигателем то очень сильно заблуждаетесь. Сделайте пожалуйста механику, поставьте двигатель и по управляйте двигателем в ручном режиме поворотом и сразу все поймете lol . Вы не внимательно читали пост #37. Ручная дрель метал сверлит и имеет не хилое усилие на валу но вы можете без особых усилий рукой провернуть патрон  big_smile. Вот когда у Вас будет в "железе" работающая механика, тогда и будем править скетч под нее. Не помню который раз но еще раз повторю, главное это работающий инкубатор с поворотом, нагревателем и увлажнителем (реально работающий а не где то "представлении"). Я тоже когда то был таким же самоуверенным, что конструкция будет работать  lol  lol . Как потом оказалось программа это может  5% задачи.

Неактивний

#62 2016-03-20 21:31:12

Dima
Учасник
Зареєстрований: 2016-01-13
Повідомлень: 46

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Nefreemen пише:

Dima, если Вы думаете что главное это управление двигателем то очень сильно заблуждаетесь. Сделайте пожалуйста механику, поставьте двигатель и по управляйте двигателем в ручном режиме поворотом и сразу все поймете lol . Вы не внимательно читали пост #37. Ручная дрель метал сверлит и имеет не хилое усилие на валу но вы можете без особых усилий рукой провернуть патрон  big_smile. Вот когда у Вас будет в "железе" работающая механика, тогда и будем править скетч под нее. Не помню который раз но еще раз повторю, главное это работающий инкубатор с поворотом, нагревателем и увлажнителем (реально работающий а не где то "представлении"). Я тоже когда то был таким же самоуверенным, что конструкция будет работать  lol  lol . Как потом оказалось программа это может  5% задачи.

понятно значит буду без шаговика городить
и дальше голову ломать о перевороте
у меня нет возможности в ручную поворачивать
а яйца спалить жалко да и смысл их класть в духовый шкаф

Неактивний

#63 2016-03-20 22:04:56

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Dima, подберите на аукро или олексе двигатель РД-09 только без никаких "П" и "П2" (особо обращаю Ваше внимание), с оборотами около 2 в минуту (цена вопроса около 90 грн.). Этот вариант проверен и не только мной. У меня такой двигатель держит  лоток 43х47 см (рычаг лотка 23.5 см) с 35 гусиными яйцами (гусиное яйцо в среднем 190 гр  big_smile  ). Рычаг на валу двигателя 9 см. С двумя и более лотками прокручивается ("проваливаются" лотки), пришлось резиновыми натяжителями убирать "провалы"  sad .

Неактивний

#64 2016-03-24 15:48:05

Dima
Учасник
Зареєстрований: 2016-01-13
Повідомлень: 46

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

  • a130621562c2t.jpg

вот таким двиглом хочу переварачивать

Неактивний

#65 2016-03-24 22:51:18

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Знаю такой моторчик. Когда то таким небольшую елочку вращал  smile . Они бывают разными, на разное напряжение и разной редукцией. Приделайте рычаг и померьте усилие ручными весами (кантером) какое  удерживает (до проворачивания) и какое подымает ( тянет) и делайте вывод. Если ось подвеса лотка будет под днищем тогда важно усилие на валу и делать "компенсатор" провала (как я сделал). Если сделать ось подвеса в другом месте лотка картина будет другая ( и не факт что Вы найдете способ устранения прокручивания). Надо быть реалистом, и понимать что это не рычажные весы и сбалансировать лоток на практике не реально (выбраковка яиц, изменение их веса со временем и пр.). Очень важна скорость поворота ( это очень важно! ) и плавность. К стати подумайте над вот этим http://alfa-vest.com.ua/p88883245-shnur … urnyj.html или http://ukrferma.com.ua/products/7688517

Остання редакція Nefreemen (2016-03-25 01:19:36)

Неактивний

#66 2016-03-26 12:39:45

Dima
Учасник
Зареєстрований: 2016-01-13
Повідомлень: 46

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

усилия хватает а вот как
замутить переворот на нем
он делает один оборот за 5-ть
минут мотор на 220в

Неактивний

#67 2016-03-26 15:34:51

Nefreemen
Учасник
З Киев
Зареєстрований: 2015-12-19
Повідомлень: 716

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Отличные обороты. На пол оборота 2.5 минуты, то что доктор прописал ( почти ) big_smile .

Неактивний

#68 2016-04-09 11:33:23

Dima
Учасник
Зареєстрований: 2016-01-13
Повідомлень: 46

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

подскажите как сделать чтоб
время выставлять с помощью кнопок
а не через пк

Неактивний

#69 2016-04-09 21:09:18

alex_dol
Учасник
Зареєстрований: 2015-12-28
Повідомлень: 196

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

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

Loop:
    //блок считывания текущего времени и даты
    Wire.beginTransmission(0x68);
    Wire.write((byte)0);
    Wire.endTransmission();
    Wire.requestFrom(0x68, 7);
    //    if (Wire.available() < 7) return;
    Second = bcd2dec(Wire.read() & 0x7f);
    Minute = bcd2dec(Wire.read() );
    Hour =   bcd2dec(Wire.read() & 0x3f);  // mask assumes 24hr clock
    Wday = Wire.read();
    Day = bcd2dec(Wire.read() );
    Month = bcd2dec(Wire.read() );
    Year = bcd2dec(Wire.read() ); //отсчет с 2000 года

    //блок подготовки строк для вывода на дисплей
    Print_Digits(output_string_1, 4, 2, ' ', Hour); //4,0
    output_string_1[6] = ':';
    Print_Digits(output_string_1, 7, 2, '0', Minute); //7,0
    output_string_1[9] = ':';
    Print_Digits(output_string_1, 10, 2, '0', Second); //10,0

    Print_Digits(output_string_2, 3, 2, ' ', Day); //3,1
    output_string_2[5] = '/';
    Print_Digits(output_string_2, 6, 2, '0', Month); //6,1
    output_string_2[8] = '/';
    Print_Digits(output_string_2, 9, 4, '0', Year + 2000); //9,1

    //вывод на дисплей
    lcd.clear();
    lcd.print(output_string_1);
    lcd.setCursor(0, 1);
    lcd.print(output_string_2);

    //считываем нажатия кнопок
    key = 0;
    if (!digitalRead(GasButonPin)) key = 2;
    if (!digitalRead(BenzButonPin)) key = 3;
    if (analogRead(ButonsPin) < 100) key = 1;
    if (key) delay(500);
    else delay(100);

    //корректируем время/дату
    switch (Cursor) {
      case 0: //часы
        switch (key) {
          case 1: //следующая
            Cursor++;
            if (Cursor > 5) Cursor = 0;
            break;
          case 2: // -
            if (Hour > 0) Hour--;
            break;
          case 3: // +
            if (Hour < 23) Hour++;
            break;
        }
        lcd.setCursor(4, 0);
        break;

      case 1: //минуты
        switch (key) {
          case 1: //следующая
            Cursor++;
            if (Cursor > 5) Cursor = 0;
            break;
          case 2: // -
            if (Minute > 0) Minute--;
            break;
          case 3: // +
            if (Minute < 60) Minute++;
            break;
        }
        lcd.setCursor(7, 0);
        break;

      case 2: //секунды
        switch (key) {
          case 1: //следующая
            Cursor++;
            if (Cursor > 5) Cursor = 0;
            break;
          case 2: // -
            if (Second > 0) Second--;
            break;
          case 3: // +
            if (Second < 60) Second++;
            break;
        }
        lcd.setCursor(10, 0);
        break;

      case 3: //день
        switch (key) {
          case 1: //следующая
            Cursor++;
            if (Cursor > 5) Cursor = 0;
            break;
          case 2: // -
            if (Day > 1) Day--;
            break;
          case 3: // +
            if (Day < 31) Day++;
            break;
        }
        lcd.setCursor(3, 1);
        break;

      case 4: //месяц
        switch (key) {
          case 1: //следующая
            Cursor++;
            if (Cursor > 5) Cursor = 0;
            break;
          case 2: // -
            if (Month > 1) Month--;
            break;
          case 3: // +
            if (Month < 12) Month++;
            break;
        }
        lcd.setCursor(6, 1);
        break;

      case 5: //год
        switch (key) {
          case 1: //следующая
            Cursor++;
            if (Cursor > 5) Cursor = 0;
            break;
          case 2: // -
            if (Year > 16) Year--;
            break;
          case 3: // +
            if (Year < 250) Year++;
            break;
        }
        lcd.setCursor(9, 1);
        break;
    }

    //записываем время если были нажаты клавиши + или -
    if (key > 1)
    {
      Second |= 0x80;  // stop the clock
      Wire.beginTransmission(0x68);
      Wire.write((uint8_t)0x00); // reset register pointer
      Wire.write(dec2bcd(Second)) ;
      Wire.write(dec2bcd(Minute));
      Wire.write(dec2bcd(Hour));      // sets 24 hour format
      Wire.write(Wday);
      Wire.write(dec2bcd(Day));
      Wire.write(dec2bcd(Month));
      Wire.write(dec2bcd(Year));
      Wire.endTransmission();

      Second &= 0x7f;  // start the clock
      Wire.beginTransmission(0x68);
      Wire.write((uint8_t)0x00); // reset register pointer
      Wire.write(dec2bcd(Second)) ;
      Wire.endTransmission(); //!!!!!!!!!!!!!!!!!!!!!!!!!! проверить или будет работать с неполной передачей данных!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    }
    goto Loop; //зацикливаем настройку, выход из настройки - выключением
  }

Неактивний

#70 2016-04-12 10:46:05

Dima
Учасник
Зареєстрований: 2016-01-13
Повідомлень: 46

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

alex_dol пише:

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

Loop:
    //блок считывания текущего времени и даты
    Wire.beginTransmission(0x68);
    Wire.write((byte)0);
    Wire.endTransmission();
    Wire.requestFrom(0x68, 7);
    //    if (Wire.available() < 7) return;
    Second = bcd2dec(Wire.read() & 0x7f);
    Minute = bcd2dec(Wire.read() );
    Hour =   bcd2dec(Wire.read() & 0x3f);  // mask assumes 24hr clock
    Wday = Wire.read();
    Day = bcd2dec(Wire.read() );
    Month = bcd2dec(Wire.read() );
    Year = bcd2dec(Wire.read() ); //отсчет с 2000 года

    //блок подготовки строк для вывода на дисплей
    Print_Digits(output_string_1, 4, 2, ' ', Hour); //4,0
    output_string_1[6] = ':';
    Print_Digits(output_string_1, 7, 2, '0', Minute); //7,0
    output_string_1[9] = ':';
    Print_Digits(output_string_1, 10, 2, '0', Second); //10,0

    Print_Digits(output_string_2, 3, 2, ' ', Day); //3,1
    output_string_2[5] = '/';
    Print_Digits(output_string_2, 6, 2, '0', Month); //6,1
    output_string_2[8] = '/';
    Print_Digits(output_string_2, 9, 4, '0', Year + 2000); //9,1

    //вывод на дисплей
    lcd.clear();
    lcd.print(output_string_1);
    lcd.setCursor(0, 1);
    lcd.print(output_string_2);

    //считываем нажатия кнопок
    key = 0;
    if (!digitalRead(GasButonPin)) key = 2;
    if (!digitalRead(BenzButonPin)) key = 3;
    if (analogRead(ButonsPin) < 100) key = 1;
    if (key) delay(500);
    else delay(100);

    //корректируем время/дату
    switch (Cursor) {
      case 0: //часы
        switch (key) {
          case 1: //следующая
            Cursor++;
            if (Cursor > 5) Cursor = 0;
            break;
          case 2: // -
            if (Hour > 0) Hour--;
            break;
          case 3: // +
            if (Hour < 23) Hour++;
            break;
        }
        lcd.setCursor(4, 0);
        break;

      case 1: //минуты
        switch (key) {
          case 1: //следующая
            Cursor++;
            if (Cursor > 5) Cursor = 0;
            break;
          case 2: // -
            if (Minute > 0) Minute--;
            break;
          case 3: // +
            if (Minute < 60) Minute++;
            break;
        }
        lcd.setCursor(7, 0);
        break;

      case 2: //секунды
        switch (key) {
          case 1: //следующая
            Cursor++;
            if (Cursor > 5) Cursor = 0;
            break;
          case 2: // -
            if (Second > 0) Second--;
            break;
          case 3: // +
            if (Second < 60) Second++;
            break;
        }
        lcd.setCursor(10, 0);
        break;

      case 3: //день
        switch (key) {
          case 1: //следующая
            Cursor++;
            if (Cursor > 5) Cursor = 0;
            break;
          case 2: // -
            if (Day > 1) Day--;
            break;
          case 3: // +
            if (Day < 31) Day++;
            break;
        }
        lcd.setCursor(3, 1);
        break;

      case 4: //месяц
        switch (key) {
          case 1: //следующая
            Cursor++;
            if (Cursor > 5) Cursor = 0;
            break;
          case 2: // -
            if (Month > 1) Month--;
            break;
          case 3: // +
            if (Month < 12) Month++;
            break;
        }
        lcd.setCursor(6, 1);
        break;

      case 5: //год
        switch (key) {
          case 1: //следующая
            Cursor++;
            if (Cursor > 5) Cursor = 0;
            break;
          case 2: // -
            if (Year > 16) Year--;
            break;
          case 3: // +
            if (Year < 250) Year++;
            break;
        }
        lcd.setCursor(9, 1);
        break;
    }

    //записываем время если были нажаты клавиши + или -
    if (key > 1)
    {
      Second |= 0x80;  // stop the clock
      Wire.beginTransmission(0x68);
      Wire.write((uint8_t)0x00); // reset register pointer
      Wire.write(dec2bcd(Second)) ;
      Wire.write(dec2bcd(Minute));
      Wire.write(dec2bcd(Hour));      // sets 24 hour format
      Wire.write(Wday);
      Wire.write(dec2bcd(Day));
      Wire.write(dec2bcd(Month));
      Wire.write(dec2bcd(Year));
      Wire.endTransmission();

      Second &= 0x7f;  // start the clock
      Wire.beginTransmission(0x68);
      Wire.write((uint8_t)0x00); // reset register pointer
      Wire.write(dec2bcd(Second)) ;
      Wire.endTransmission(); //!!!!!!!!!!!!!!!!!!!!!!!!!! проверить или будет работать с неполной передачей данных!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    }
    goto Loop; //зацикливаем настройку, выход из настройки - выключением
  }

извините за глупый вопрос но где его правильно вставить?

Неактивний

#71 2016-04-12 11:05:10

Dima
Учасник
Зареєстрований: 2016-01-13
Повідомлень: 46

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Неактивний

#72 2016-04-13 09:32:00

alex_dol
Учасник
Зареєстрований: 2015-12-28
Повідомлень: 196

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

Данный код вставить не получится, так как это часть другой программы, его надо адаптировать для вашей программы - изменить или добавить переменные и функции.
Second, Minute, Hour ... - переменные в них хранятся соответствующие значения.
bcd2dec - функция преобразования формата чисел.
Print_Digits - функция преобразования числа в строку.

Неактивний

#73 2016-04-13 10:41:27

Dima
Учасник
Зареєстрований: 2016-01-13
Повідомлень: 46

Re: ПОМОГИТЕ ПОСТАВИТЬ ТОЧКИ НАД И

alex_dol пише:

Данный код вставить не получится, так как это часть другой программы, его надо адаптировать для вашей программы - изменить или добавить переменные и функции.
Second, Minute, Hour ... - переменные в них хранятся соответствующие значения.
bcd2dec - функция преобразования формата чисел.
Print_Digits - функция преобразования числа в строку.

а можно пример
а то я совсем туго

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму