помощь в скетче

lanser01
Offline
Зарегистрирован: 30.08.2016
lanser01
Offline
Зарегистрирован: 30.08.2016

помогите прописать включение реле на 12 секунд при значении сухости 550

// Датчик влажности почвы
// http://mtbot.ru

// контакт подключения аналогового выхода датчика
int aPin=A0;
// контакты подключения светодиодов индикации
int ledPins[8]={4,5,6,7,8,9,10,11};
// переменная для сохранения значения датчика
int avalue=0;
// переменная количества светящихся светодиодов
int countled=8;
// значение полного полива
int minvalue=220;
// значение критической сухости
int maxvalue=600;

void setup()
{
// инициализация последовательного порта
Serial.begin(9600);
// настройка выводов индикации светодиодов
// в режим OUTPUT
for(int i=0;i<8;i++)
{
pinMode(ledPins[i],OUTPUT);
}

}

void loop()
{
// получение значения с аналогового вывода датчика
avalue=analogRead(aPin);
// вывод значения в монитор последовательного порта Arduino
Serial.print("avalue=");Serial.println(avalue);
// масштабируем значение на 8 светодиодов
countled=map(avalue,maxvalue,minvalue,0,7);
// индикация уровня влажности
for(int i=0;i<8;i++)
{
if(i<=countled)
digitalWrite(ledPins[i],HIGH); //зажигаем светодиод
else
digitalWrite(ledPins[i],LOW); // гасим светодиод
}
// пауза перед следующим получением значения 1000 мс
delay(1000);
}
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

1. Вставьте код правильно.

2. А что с этим кодом не так? Проблема в чём?

Navigator
Navigator аватар
Offline
Зарегистрирован: 26.01.2016

Похоже на то, что lanser01 просто хочет раскрутить сайт mtbot.ru по продаже шилдов для ардуино. реклама сайта

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

А я как-то и не ходил туда. Когда хотят раскрутить, пишут хоть какое-то завлекалово, чтобы возникло желание кликнуть. А когда в посте голая ссылка - нафига не неё кликать? Это как в каждую собачю кучку специально вступать.

lanser01
Offline
Зарегистрирован: 30.08.2016

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

 

lanser01
Offline
Зарегистрирован: 30.08.2016

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

 

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

lanser01 пишет:

я нашел скетч чтобы сделать себе поливной горшок.))) 

Молодец!

Теперь ещё ты и соизволишь 

1) показать. что ты уже сделал
2) объяснить толком что нужно и чем не устраивает то, что получилось

То, может быть, тебе и помогут.

lanser01
Offline
Зарегистрирован: 30.08.2016

lanser01
Offline
Зарегистрирован: 30.08.2016

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

lanser01
Offline
Зарегистрирован: 30.08.2016
// Датчик влажности почвы
// http://mtbot.ru

// контакт подключения аналогового выхода датчика
int aPin=A0;
// контакты подключения светодиодов индикации
int ledPins[8]={4,5,6,7,8,9,10,11};
// переменная для сохранения значения датчика
int avalue=0;
// переменная количества светящихся светодиодов
int countled=8;
// значение полного полива
int minvalue=220;
// значение критической сухости
int maxvalue=600;

void setup()
{
// инициализация последовательного порта
Serial.begin(9600);
// настройка выводов индикации светодиодов
// в режим OUTPUT
for(int i=0;i<8;i++)
{
pinMode(ledPins[i],OUTPUT);
}

}

void loop()
{
// получение значения с аналогового вывода датчика
avalue=analogRead(aPin);
// вывод значения в монитор последовательного порта Arduino
Serial.print("avalue=");Serial.println(avalue);
// масштабируем значение на 8 светодиодов
countled=map(avalue,maxvalue,minvalue,0,7);
// индикация уровня влажности
for(int i=0;i<8;i++)
{
if(i<=countled)
digitalWrite(ledPins[i],HIGH); //зажигаем светодиод
else
digitalWrite(ledPins[i],LOW); // гасим светодиод
}
// пауза перед следующим получением значения 1000 мс
delay(1000);
}

 

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

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

Дело в том, что в этом разделе помогают тем, кто делает сам. Если Вам нужно, чтобы просто кто-то сделал за Вас, то Вам в другой раздел.

lanser01
Offline
Зарегистрирован: 30.08.2016

Я только купил ардуино и датчики. Языком программирования не владею, но хотелось бы. Полить цветок я и сам могу, но хочется посмотреть как это выглядит и работает чтобы разобраться в этом. А почему я выбрал именно этот скетч, потому-что долго уже сижу и изучаю этот скетч, и "заднюю здавать" нет желания. Если я хотябы знал как включить реле по датчику влажности почвы(скетч), я бы тогда сам как нибудь соединил бы эти два скетча.

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

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

Какой Вам кайф в том, что кто-то за Вас готовое сделает? Готовое можно и в магазине купить.

lanser01
Offline
Зарегистрирован: 30.08.2016
// контакт подключения аналогового выхода датчика
int aPin=A0;
// контакты подключения светодиодов индикации
int ledPins[8]={4,5,6,7,8,9,10,11};
// переменная для сохранения значения датчика
int avalue=0;
// переменная количества светящихся светодиодов
int countled=8;
// значение полного полива
int minvalue=220;
// значение критической сухости
int maxvalue=600;
int relayPin = 12;  //реле пин
void setup()
{
// инициализация последовательного порта
Serial.begin(9600);
// настройка выводов индикации светодиодов
// в режим OUTPUT
for(int i=0;i<8;i++)
{
pinMode(ledPins[i],OUTPUT);
pinMode(relayPin, OUTPUT);
}

}

void loop()
{
// получение значения с аналогового вывода датчика
avalue=analogRead(aPin);
// вывод значения в монитор последовательного порта Arduino
Serial.print("avalue=");Serial.println(avalue);
// масштабируем значение на 8 светодиодов
countled=map(avalue,maxvalue,minvalue,0,7);
// индикация уровня влажности
for(int i=0;i<8;i++)
{
if(i<=countled)
digitalWrite(ledPins[i],HIGH); //зажигаем светодиод
digitalWrite(relayPin,HIGH); //включаем реле
delay(12000);
digitalWrite(relayPin,LOW); //выключаем реле
delay(1000);
else
digitalWrite(ledPins[i],LOW); // гасим светодиод
}
// пауза перед следующим получением значения 100 мс
delay(100);
}

 

lanser01
Offline
Зарегистрирован: 30.08.2016

Вроде вставил реле, но что-то не то...

lanser01
Offline
Зарегистрирован: 30.08.2016

или мне еще далеко?))

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

Что значит "то-то не то". У Вас есть конкретный вопрос? Или так, поболтать хочется?

Вы уже изучили книгу, которую я Вам дал?

Вот, когда изучите, тогда приходите. 

Пока же Вы не мытьём так катаньем пытаетесь раскрутить, чтобы я просто сделал за Вас. Не пытайтесь, я не буду этого делать. Помочь (ответить на конкретные вопросы) могу. а делать за Вас не буду.

lanser01
Offline
Зарегистрирован: 30.08.2016

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

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

Да, ладно! Два пальца - это рукой шевелить надо. Здесь намного проще, чем два пальца. Но Вам-то какой кайф оттого, что это сделаю я? Никакого, ведь!

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Вот одного не поймут новички. Что если этими программами займется профессионал, то там очень мало останется от исходного кода. А значить шанс разобраться новичку еще меньше.  Например после меня точно, не всякий возьмется дальше совершенствовать мой код.

Navigator
Navigator аватар
Offline
Зарегистрирован: 26.01.2016

lanser01, я не знаю на сколько вы знакомы с электроникой. Как вы подключили реле, какое у него управляющее напряжение? 

Выходы ардуино рассчитаны на ток не более 40 мА. Проверьте реле. Попробуйте им управлять без датчика и всех условий, просто командой digitalWrite, а потом будете дорабатывать свой скетч.

Также пользуйтесь Serial.println(). Например после digitalWrite(relePin, HIGH) - Serial.println("Rele ON")  и  после digitalWrite(relePin, LOW)  Serial.println("Rele off"), сразу будет видно, что прошла команда включения/выключения.

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

хм..., интересно,  сколько lanser01 лет

lanser01
Offline
Зарегистрирован: 30.08.2016

32 мне. Это имеет значение?

lanser01
Offline
Зарегистрирован: 30.08.2016

не знаете ссылки на команды и их значение? типа digitalWrite(pin, HIGH) - включить pin. а то я немецкий учил в школе и с английским большие проблемы. или словарь именно для языка ардуино.

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

lanser01 пишет:

не знаете ссылки на команды и их значение? типа digitalWrite(pin, HIGH) - включить pin. а то я немецкий учил в школе и с английским большие проблемы. или словарь именно для языка ардуино.

1. Откройте глаза
2. Посмотрите на экран перед собой
3. Вверху страницы по центру найдёт слово "Программирование"
4. Давите на него мышкой

Вы реально хотя-бы на меню этого сайта хоть раз в жизни смотрели?

Кроме того, ВСЕ функции ардуино описаны в книге, которую я дал Вам вчера. Вы её хотя бы открывали? У меня ощущение, что помощь Вам - бесполезно потраченное время. Невозможно помочь тому, кто игнорирует то, что ему говоришь.

lanser01
Offline
Зарегистрирован: 30.08.2016

В книге 334 страницы!!! это очень долго читать ее. В нете можно быстрее найти вопросы которыми я интересуюсь. тем более она электронный вариант. Если я новичок в этом деле то не стоит давить на меня! Дедовщиной начинает пахнуть. Вам еще это нравиться обучать бестолкового ученика. Каждый в своем деле профессионал. а это мое хобби. А я про ардуино узнал 2 месяца назад, дней 40 шла посылка с аллиэкспресс, в итоге я 1,5 недели сижу с ардуиной. В книге я сам одиночно мало что узнаю, да и рядом со мной нет таких профессионалов как вы.

lanser01
Offline
Зарегистрирован: 30.08.2016

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

сведодиод-все функции управления и тд и тп

серво мотор -все функции управления и тд и тп

вот так было бы мне проще намного.

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

lanser01 пишет:

В книге 334 страницы!!! 

Ниасилил?

lanser01 пишет:

не стоит давить на меня! 

Сорри, больше не буду :))))

 

 

lanser01
Offline
Зарегистрирован: 30.08.2016

Выбрали что поинтересней?:-))

Goldln
Offline
Зарегистрирован: 02.09.2016

Хелп не проходит скечь , верней не хочет загружается пишет вот этоavrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x60
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x60
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x60
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x60
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x60
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x60
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x60
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x60
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x60
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x60
�������� �������� � �����. ������ �� ��������: http://www.arduino.cc/en/Guide/Troubleshooting#upload

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Причин может быть куча:

1) китайский USB-кабель плохого качества

2) неправильно выбран COM-порт в настройках Arduino IDE

3) не установлены драйверы для USB-UART конвертера --> не появился нужный COM-порт

4) неправильно или плохо припаяна микросхема USB-UART конвертера (возможно непропай или наоборот где-то закоротило)

5) микросхема USB-UART конвертера не исправна

6) в микроконтроллере нет загрузчика

7) микроконтроллер не исправен

Goldln
Offline
Зарегистрирован: 02.09.2016

Но другие скетчи загружаются нормально .

Navigator
Navigator аватар
Offline
Зарегистрирован: 26.01.2016

lanser01, как у вас успехи? Разобрались как управлять реле? Если у вас такой релейный модуль, то вот вам в помощь https://www.youtube.com/watch?v=8N3b56a1h7E

https://www.youtube.com/watch?v=D5q5qmr2p98 .

Здесь вам готовы помочь, но вы не указали какое реле (можно было выложить и фото), не экстрасенсы, угадывать не умеем.

И еще в скетче строку 23 переместите на 19 строку. Оно может и так будет работать, но сейчас Pin 12 несколько раз настраивается как выходной. После 37 строки уже сами поразбирайтесь.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Goldln пишет:
Но другие скетчи загружаются нормально .

Загружаемый скетч тут не при чем. Не может такого быть, что именно эта ошибка возникает только при загрузке определённого скетча.

Goldln
Offline
Зарегистрирован: 02.09.2016

Спосбо всем я сам зазабрался . Почему не вгружал скечь

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

Goldln пишет:

Спосбо всем я сам зазабрался . Почему не вгружал скечь

Так может поделитесь с сообществом? А то нехорошо как-то - "чужие знания спрошу, а свои хрен кому дам".

Goldln
Offline
Зарегистрирован: 02.09.2016

Извиняюсь за пред идущие сообщение , написал с ошибками . И так получилось так что на другом компе что то не. Так пошло с установкой дров для Андуинке , на другом компе все прошло + оригинальный кабель поставил . И обновил прогу до 11 версии . И все пошло как надо ;)