Прошу помочь с кодом

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Для четырех реле с независимой логикой работы - да, делаи не прокатят

Bravlad
Offline
Зарегистрирован: 25.06.2020

v258 пишет:

Для четырех реле с независимой логикой работы - да, делаи не прокатят


Так вот он какой, северный олень!)))

Bravlad
Offline
Зарегистрирован: 25.06.2020

sadman41 пишет:

Не, ну я щитаю - нормальное развитие событий. Через пару часов появится дисплей 320x200 с тачем и датчик, работающий по модбасу.


Гулять так кулять!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Bravlad пишет:
Для примитивного, нужного в данный момент скетча, смысла углубляться в изучение нет.
Вот это правильно!

А нам-то как дохрена смысла тратить своё время на ВАШ примитивный код на который ВАМ потратить СВОЁ время жалко :-)

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

Bravlad
Offline
Зарегистрирован: 25.06.2020

ЕвгенийП пишет:

Bravlad пишет:
Для примитивного, нужного в данный момент скетча, смысла углубляться в изучение нет.
Вот это правильно!

А нам-то как дохрена смысла тратить своё время на ВАШ примитивный код на который ВАМ потратить СВОЁ время жалко :-)

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


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

Bravlad
Offline
Зарегистрирован: 25.06.2020

ЕвгенийП пишет:

Bravlad пишет:
Для примитивного, нужного в данный момент скетча, смысла углубляться в изучение нет.
Вот это правильно!

А нам-то как дохрена смысла тратить своё время на ВАШ примитивный код на который ВАМ потратить СВОЁ время жалко :-)

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


И от имени всех говорить не стоит! Я же никого не заставляю. И кстати, отличие от Вас, некоторые участники переписки пытаются внести что-то полезное.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Bravlad пишет:
Мы вообще-то на возмездной основе договариваемся.
В таком случае, что этот топик делает в данном разделе форума?
Bravlad пишет:
И кстати, отличие от Вас, некоторые участники переписки пытаются внести что-то полезное.
Это было до Вашего заявление про "нет смысла", коллеги, по ошибке, думали, что Вам это действительно интересно. А если Вам самому "нет смысла", то другим уж и подавно.

Bravlad
Offline
Зарегистрирован: 25.06.2020

ЕвгенийП пишет:

Bravlad пишет:
Мы вообще-то на возмездной основе договариваемся.
В таком случае, что этот топик делает в данном разделе форума?
Bravlad пишет:
И кстати, отличие от Вас, некоторые участники переписки пытаются внести что-то полезное.
Это было до Вашего заявление про "нет смысла", коллеги, по ошибке, думали, что Вам это действительно интересно. А если Вам самому "нет смысла", то другим уж и подавно.

Да интересно мне, интересно. Через пару недель мне самому смешно будет свою переписку читать. Уж наверное простейшее написание осилю, научусь чему нибудь. Может когда нибудь пригодится!

В данный момент тормозить работу для изучения основ нет смысла. Прибамбас нужен сейчас.

В любом случае из переписки много ценного извлек!

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Если желание учиться не пропало тогда вот пример

#define datcik 2  // вместо 2 подставте РЕАЛЬНЫЙ пин датчика
#define rele 3    // Вместо 3 подставте РЕАЛЬНЫЙ пин реле

bool flag_push = 0;
bool flag_pauza = 0;
uint32_t pauza;

void setup() {
  pinMode(datcik, INPUT);
  pinMode(rele, OUTPUT);
}

void loop() {
  if (digitalRead(datcik) == HIGH && flag_push == LOW)
  {
    flag_push = 1;
    flag_pauza = 1;
    pauza = millis();
    digitalWrite(rele, HIGH);
  }
  if (digitalRead(datcik) == LOW) flag_push = 0;
  if (flag_pauza == 1 && millis() - pauza >= 2000)
  {
    digitalWrite(rele, LOW);
    flag_pauza = 0;
  }
}

 

Bravlad
Offline
Зарегистрирован: 25.06.2020

vosara пишет:

Если желание учиться не пропало тогда вот пример

#define datcik 2  // вместо 2 подставте РЕАЛЬНЫЙ пин датчика
#define rele 3    // Вместо 3 подставте РЕАЛЬНЫЙ пин реле

bool flag_push = 0;
bool flag_pauza = 0;
uint32_t pauza;

void setup() {
  pinMode(datcik, INPUT);
  pinMode(rele, OUTPUT);
}

void loop() {
  if (digitalRead(datcik) == HIGH && flag_push == LOW)
  {
    flag_push = 1;
    flag_pauza = 1;
    pauza = millis();
    digitalWrite(rele, HIGH);
  }
  if (digitalRead(datcik) == LOW) flag_push = 0;
  if (flag_pauza == 1 && millis() - pauza >= 2000)
  {
    digitalWrite(rele, LOW);
    flag_pauza = 0;
  }
}

 

Спасибо! Сейчас попробую. Буквально несколько минут назад добрые люди объяснили,что такое дефайн)))

Bravlad
Offline
Зарегистрирован: 25.06.2020

Bravlad пишет:

vosara пишет:

Если желание учиться не пропало тогда вот пример

#define datcik 2  // вместо 2 подставте РЕАЛЬНЫЙ пин датчика
#define rele 3    // Вместо 3 подставте РЕАЛЬНЫЙ пин реле

bool flag_push = 0;
bool flag_pauza = 0;
uint32_t pauza;

void setup() {
  pinMode(datcik, INPUT);
  pinMode(rele, OUTPUT);
}

void loop() {
  if (digitalRead(datcik) == HIGH && flag_push == LOW)
  {
    flag_push = 1;
    flag_pauza = 1;
    pauza = millis();
    digitalWrite(rele, HIGH);
  }
  if (digitalRead(datcik) == LOW) flag_push = 0;
  if (flag_pauza == 1 && millis() - pauza >= 2000)
  {
    digitalWrite(rele, LOW);
    flag_pauza = 0;
  }
}

 

Спасибо! Сейчас попробую. Буквально несколько минут назад добрые люди объяснили,что такое дефайн)))

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

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

Пробовал менять Хай на Лоу и наоборот. Вообще какая-то белиберда получается!

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Перед этим Вы писали что включается по плюсу а если минус то так

#define datcik 2  // вместо 2 подставте РЕАЛЬНЫЙ пин датчика
#define rele 3    // Вместо 3 подставте РЕАЛЬНЫЙ пин реле

bool flag_push = 0;
bool flag_pauza = 0;
uint32_t pauza;

void setup() {
  pinMode(datcik, INPUT_PULLUP);
  pinMode(rele, OUTPUT);
}

void loop() {
  if (digitalRead(datcik) == LOW && flag_push == LOW)
  {
    flag_push = 1;
    flag_pauza = 1;
    pauza = millis();
    digitalWrite(rele, HIGH);
  }
  if (digitalRead(datcik) == HIGH) flag_push = 0;
  if (flag_pauza == 1 && millis() - pauza >= 2000)
  {
    digitalWrite(rele, LOW);
    flag_pauza = 0;
  }
}

 

Bravlad
Offline
Зарегистрирован: 25.06.2020

vosara пишет:

Перед этим Вы писали что включается по плюсу а если минус то так

#define datcik 2  // вместо 2 подставте РЕАЛЬНЫЙ пин датчика
#define rele 3    // Вместо 3 подставте РЕАЛЬНЫЙ пин реле

bool flag_push = 0;
bool flag_pauza = 0;
uint32_t pauza;

void setup() {
  pinMode(datcik, INPUT_PULLUP);
  pinMode(rele, OUTPUT);
}
Спасибо! Завтра попробую

void loop() {
  if (digitalRead(datcik) == LOW && flag_push == LOW)
  {
    flag_push = 1;
    flag_pauza = 1;
    pauza = millis();
    digitalWrite(rele, HIGH);
  }
  if (digitalRead(datcik) == HIGH) flag_push = 0;
  if (flag_pauza == 1 && millis() - pauza >= 2000)
  {
    digitalWrite(rele, LOW);
    flag_pauza = 0;
  }
}

 

Bravlad
Offline
Зарегистрирован: 25.06.2020

Bravlad пишет:
vosara пишет:

Перед этим Вы писали что включается по плюсу а если минус то так

#define datcik 2  // вместо 2 подставте РЕАЛЬНЫЙ пин датчика
#define rele 3    // Вместо 3 подставте РЕАЛЬНЫЙ пин реле

bool flag_push = 0;
bool flag_pauza = 0;
uint32_t pauza;

void setup() {
  pinMode(datcik, INPUT_PULLUP);
  pinMode(rele, OUTPUT);
}
Спасибо! Завтра попробую

void loop() {
  if (digitalRead(datcik) == LOW && flag_push == LOW)
  {
    flag_push = 1;
    flag_pauza = 1;
    pauza = millis();
    digitalWrite(rele, HIGH);
  }
  if (digitalRead(datcik) == HIGH) flag_push = 0;
  if (flag_pauza == 1 && millis() - pauza >= 2000)
  {
    digitalWrite(rele, LOW);
    flag_pauza = 0;
  }
}

 

В этом случае корректно, но почему-то присутствует пауза перед срабатыванием реле

b707
Offline
Зарегистрирован: 26.05.2017

Bravlad пишет:

В этом случае корректно, но почему-то присутствует пауза перед срабатыванием реле


потому что вы просили паузу перед срабатыванием.

Вот об этом я и пишу, когда говорю, что основное время и труды уходит на вытягивание у заказкика подробностей ТЗ. В некоторых случаях, как например в вашем - исполнителю приходится по нескольку раз код переписывать, из-за того что заказчик не умеет свои мысли правильно формулировать. А вы говорите 1.5 дорого - да с вас и 3 не стыдно взять за постоянное изменение условий заказа:)

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

На включение реле паузы в коде не предусмотрено а на выключение да 2сек (Это при условии что реле включается высоком уровнем сигнала) а если низким то да надо подправить. Кроме Вас никто не выяснит каким сигналом включается реле!

Bravlad
Offline
Зарегистрирован: 25.06.2020

vosara пишет:

На включение реле паузы в коде не предусмотрено а на выключение да 2сек (Это при условии что реле включается высоком уровнем сигнала) а если низким то да надо подправить. Кроме Вас никто не выяснит каким сигналом включается реле!

Реле включается при подаче минуса. Это низкий уровень?

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

ДА это низкий уровень - пробуйте

#define datcik 2  // вместо 2 подставте РЕАЛЬНЫЙ пин датчика
#define rele 3    // Вместо 3 подставте РЕАЛЬНЫЙ пин реле

bool flag_push = 0;
bool flag_pauza = 0;
uint32_t pauza;

void setup() {
  pinMode(datcik, INPUT_PULLUP);
  pinMode(rele, OUTPUT);
}

void loop() {
  if (digitalRead(datcik) == LOW && flag_push == LOW)
  {
    flag_push = 1;
    flag_pauza = 1;
    pauza = millis();
    digitalWrite(rele, LOW);
  }
  if (digitalRead(datcik) == HIGH) flag_push = 0;
  if (flag_pauza == 1 && millis() - pauza >= 2000)
  {
    digitalWrite(rele, HIGH);
    flag_pauza = 0;
  }
}

 

Bravlad
Offline
Зарегистрирован: 25.06.2020

vosara пишет:

ДА это низкий уровень - пробуйте

#define datcik 2  // вместо 2 подставте РЕАЛЬНЫЙ пин датчика
#define rele 3    // Вместо 3 подставте РЕАЛЬНЫЙ пин реле

bool flag_push = 0;
bool flag_pauza = 0;
uint32_t pauza;

void setup() {
  pinMode(datcik, INPUT_PULLUP);
  pinMode(rele, OUTPUT);
}

void loop() {
  if (digitalRead(datcik) == LOW && flag_push == LOW)
  {
    flag_push = 1;
    flag_pauza = 1;
    pauza = millis();
    digitalWrite(rele, LOW);
  }
  if (digitalRead(datcik) == HIGH) flag_push = 0;
  if (flag_pauza == 1 && millis() - pauza >= 2000)
  {
    digitalWrite(rele, HIGH);
    flag_pauza = 0;
  }
}

 

Спасибо!

ffioygenuv8v
Offline
Зарегистрирован: 28.06.2020

Подскажите в чем ошибка

error: 'B01110000' was not declared in this scope
 
код:
 
void MPU9250_asukiaaa::magWakeup() {
  unsigned char bits;
  i2cRead(address, MPU9250_ADDR_PWR_MGMT_1, 1, &bits);
  bits &= ~B01110000; // Turn off SLEEP, STANDBY, CYCLE
  i2cWriteByte(address, MPU9250_ADDR_PWR_MGMT_1, bits);
  delay(10);
}

 

 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

ffioygenuv8v пишет:

Подскажите в чем ошибка

error: 'B01110000' was not declared in this scope

Это имеет какое-то отношение к теме данного топика? Что этот вопрос вообще здесь делает?

По теме вопроса. Компилятор сказал: "error: 'B01110000' was not declared in this scope". Что именно в этом сообщении тебе непонятно? Не можешь его перевести? Давай я за тебя гугл-переводчик запущу. Получается: "ошибка: «B01110000» не был объявлен в этой области"

Всё? Или ещё вопросы остались?

ffioygenuv8v
Offline
Зарегистрирован: 28.06.2020

Супер )) это прям идеальный среднестатистический таксичный ответ на любом форуме ) хоть бы что-нибудь сказал про бинарную маску так нет )

как оно чувство самоутверждения, лучше тебе стало? )

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

ffioygenuv8v пишет:

Супер )) это прям идеальный среднестатистический таксичный ответ на любом форуме ) хоть бы что-нибудь сказал про бинарную маску так нет )

как оно чувство самоутверждения, лучше тебе стало? )

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

Во-вторых, ошибка означает, что переменная с таким именем не объявлена. Об этом вам тоже сказали

В третьих, не нужно думать, что вам здесь что-то должны, и, соответственно, вставать в позу. Это самый долгий путь для получения нужного результата ;)

void MPU9250_asukiaaa::magWakeup() {
  unsigned char bits;
  i2cRead(address, MPU9250_ADDR_PWR_MGMT_1, 1, &bits);
  byte _bits = B01110000;
  bits &= ~_bits; // Turn off SLEEP, STANDBY, CYCLE
  i2cWriteByte(address, MPU9250_ADDR_PWR_MGMT_1, bits);
  delay(10);
}

 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

ffioygenuv8v пишет:
идеальный среднестатистический таксичный ответ
Каков вопрос, таков и ответ. Ты спросил "Подскажите в чем ошибка?" - тебе ответили "объект с именем B01110000 не определён". Ответ неверный? Или в чём твоя проблема теперь? Минет не сделали? Так извини - за этим на другой форум топай.

Я вообще-то благодарности ожидал, а не ведро дерьма на голову. При появлении новых вопросов от тебя, я учту твою реакцию на точные и краткие ответы.

Bravlad
Offline
Зарегистрирован: 25.06.2020

b707 пишет:
Bravlad пишет:

В этом случае корректно, но почему-то присутствует пауза перед срабатыванием реле


потому что вы просили паузу перед срабатыванием.

Вот об этом я и пишу, когда говорю, что основное время и труды уходит на вытягивание у заказкика подробностей ТЗ. В некоторых случаях, как например в вашем - исполнителю приходится по нескольку раз код переписывать, из-за того что заказчик не умеет свои мысли правильно формулировать. А вы говорите 1.5 дорого - да с вас и 3 не стыдно взять за постоянное изменение условий заказа:)


Я разве где-то говорил, что 1,5 дорого? Я вообще с кем-то по поводу цены разговаривал?
Что-то вы, уважуемый, путаете!

Bravlad
Offline
Зарегистрирован: 25.06.2020

b707 пишет:
Bravlad пишет:

В этом случае корректно, но почему-то присутствует пауза перед срабатыванием реле


потому что вы просили паузу перед срабатыванием.

Вот об этом я и пишу, когда говорю, что основное время и труды уходит на вытягивание у заказкика подробностей ТЗ. В некоторых случаях, как например в вашем - исполнителю приходится по нескольку раз код переписывать, из-за того что заказчик не умеет свои мысли правильно формулировать. А вы говорите 1.5 дорого - да с вас и 3 не стыдно взять за постоянное изменение условий заказа:)


Откуда столько злости? Будьте добрее к людям и к вам добрее будут!
Все будет хорошо!

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

ffioygenuv8v пишет:

среднестатистический таксичный 

Собачник? Такс держишь? Или просто буква "о" на клаве не работает?

Bravlad
Offline
Зарегистрирован: 25.06.2020

Дорогие друзья! Спасибо всем, кто пытался помочь. Вчера договорились с человеком, сегодня уже получил скетч в готовом виде.
Тему считаю исчерпанной!
Всего наилучшего!

Green
Offline
Зарегистрирован: 01.10.2015

А бармалей пишет? Для сравнения.

Bravlad
Offline
Зарегистрирован: 25.06.2020

Бармалею не писал, т. к. уже получил готовый скетч. Кстати, по тех заданию не было никаких изменений в процессе работы. Тут кое-кто уже не знает на кого бы еще накатить!:-)
Вообще, думаю с Бармалеем связаться, чтобы сравнить какие будут различия в коде.

b707
Offline
Зарегистрирован: 26.05.2017

Bravlad пишет:
Откуда столько злости? Будьте добрее к людям и к вам добрее будут! Все будет хорошо!

где вы там злость-то обнаружили? :)

Bravlad
Offline
Зарегистрирован: 25.06.2020

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

Ulliss
Offline
Зарегистрирован: 16.09.2019

Выложите, пожалуйста итоговый скетч. Для исчерпания темы, так сказать.

Это поможет другим в работе над ошибками, при сравнении "было - стало".

Bravlad
Offline
Зарегистрирован: 25.06.2020

Ulliss пишет:

Выложите, пожалуйста итоговый скетч. Для исчерпания темы, так сказать.

Это поможет другим в работе над ошибками, при сравнении "было - стало".


Здесь обсуждался скетч для одного реле. За деньги заказывал на 4 с отдельной логикой. Так что сравнения не корректны.