Помогите написать программу
- Войдите на сайт для отправки комментариев
Вс, 17/02/2019 - 20:06
Мне нужно чтобы я нажал на кнопку и программа заработала
#include <LiquidCrystal_1602_RUS.h> #define myInterrupt LiquidCrystal_1602_RUS lcd(12, 11, 7, 6, 5, 4); // (RS, E, DB4, DB5, DB6, DB7) int switchPin = 8; int ledPin = 2; float v=120; int s=0; //секунды int PIN_BUTTON=3; void setup() { pinMode(switchPin, INPUT); digitalWrite(switchPin, HIGH); pinMode(ledPin, OUTPUT); pinMode(10,INPUT_PULLUP); } void loop() {lcd.begin(16, 2); int g = digitalRead(switchPin); if(digitalRead(10)==HIGH){ if(g==LOW){lcd.begin(16, 2); s=s+1; digitalWrite(ledPin,LOW); lcd.setCursor(0, 0); lcd.print("time:"); lcd.setCursor(5, 0); lcd.print(s); digitalWrite(9,HIGH); delay(1000); }else{lcd.begin(16, 2); float Q=v/s; lcd.setCursor(0, 2); lcd.print("Q="); lcd.setCursor(2, 2); lcd.print(Q); lcd.setCursor(0, 0); lcd.print("time:"); lcd.setCursor(5, 0); lcd.print(s); digitalWrite(ledPin,HIGH); digitalWrite(9,LOW); delay(1000);} } }
[сарказм вкл.]
задача уж слишком сложная, никто не знает как вам помочь
[сарказм выкл]
ну так вы помогите я чутьли не все перепробовал. Я просто в этом деле новичек
а давайте вы вначале только словами , и если можно диаграмами(хоть в painte нарисуйте) обьязните чего вы хотите добиться и как по ващему это отображено в коде ?
п.с. новичкам которые хотят научиться : тут терпеливо помогут и обьяснят..но писать код за кого то,вряд ли будут.
код вы встатили по правилам,уже хорошо.но вопрос не сформулирован от слова совсем .какая кнопка ? куда подклюнена ? какая схема подключения ? что в вашем пониманиие значит "не работает" ? что за плата в конце концов ?
У меня есть геркон и lcd1602 экран мне нужно чтобы я мог включать выключать свою программу (которая во втором цикле if) в ней идет отсчет который выводится на экран после того как магнит поднесут к геркону отсчет кончается и выводится расход воды по формуле Q=v/s (v-объем ёмкости и s-секунды). Мне просто нужно что бы я мог включать и выключать данную программу. Как это реализовать
Задача выполнима только если кнопка разрывает провод питания. В иных случаях программа выполняется всегда и остановке и последующему запуску не поддается. Специфика такая у МК.
Получается программным путем никак?Что значит "Специфика такая у МК."
То и означает - микроконтроллер работает всегда, пока есть питание.
Получается программным путем никак?Что значит "Специфика такая у МК."
Если программным путем, то программа продолжает выполняться, что не соответствует ТЗ.
может вы лучше сформулируете что в вашем понимании значит "Мне просто нужно что бы я мог включать и выключать данную программу" ?
"включать" - значит вести подсчет ,а "выключать" не вести или подсчеты вести но не отображать ничего на экране или как ?
Спасибо приму во внимание все сказанное
может вы лучше сформулируете что в вашем понимании значит "Мне просто нужно что бы я мог включать и выключать данную программу" ?
"включать" - значит вести подсчет ,а "выключать" не вести или подсчеты вести но не отображать ничего на экране или как ?
Включать-вести подсчет и выводить на экран
Выключать-не вести подсчет и не выводить на экран
вы хотите что вы пока кнопка (10?) нажата и удерживаеться программа была в положении "вкл", как только отпустили то программа в положениее "выкл"?
или хотите
нажал->отпустил->вкл
нажал->отпустил->выкл ?
По 1 нажатию включение и выключение(по программе я сначало пытался по 1 нажатию затем по удержанию)
"Включение и выключение по одному нажатию" является противоречивым требованием.
Противоречивым требованием по отношению к чему
оффтоп , вопрос к ТС что бует если подав питание на ваше устройство изначально нажать на 10ый пин и не нажать на switchPin ?
По отношению к логике. Одно действие не может привести к противоположным эффектам.
Противоречивым требованием по отношению к чему
в вашем понимании "1-о нажатие" = "нажать и держать"
или "1-о нажатие" = "нажать,держать,отпустить"
оффтоп , вопрос к ТС что бует если подав питание на ваше устройство изначально нажать на 10ый пин и не нажать на switchPin ?
switchPin это геркон вы имеете в виду замкнуть контакты? если да то отсчет не случится и данных не будет все будет равну логическому нулю но мне не это нужно представьте сообащющий сосуд в котором например на менопласте лежит магнит а наверху геркон вода поднимает пенопласт и геркон замыкается появляются данные.
а 10 пин там нерабочая кнопка
Противоречивым требованием по отношению к чему
в вашем понимании "1-о нажатие" = "нажать и держать"
или "1-о нажатие" = "нажать,держать,отпустить"
второй вариант
оффтоп , вопрос к ТС что бует если подав питание на ваше устройство изначально нажать на 10ый пин и не нажать на switchPin ?
switchPin это геркон вы имеете в виду замкнуть контакты? если да то отсчет не случится и данных не будет все будет равну логическому нулю но мне не это нужно представьте сообащющий сосуд в котором например на менопласте лежит магнит а наверху геркон вода поднимает пенопласт и геркон замыкается появляются данные.
а 10 пин там нерабочая кнопка
поэтому я и просил нарисовать в paint'e или хоть где,как это все выглядет,одно и тоже описание мы можем представлять по разному .
что значит "нерабочая кнока" ? если она нерабочая.зачем она в скетче ?
у вас в скетче может случиться деление на 0 ,и тогда уже никто не не узнает : это в логике кода косяк или адуино "висит".
Пусть во фритцинге сразу рисует... а то в пайнте будет просто треш.
оффтоп , вопрос к ТС что бует если подав питание на ваше устройство изначально нажать на 10ый пин и не нажать на switchPin ?
switchPin это геркон вы имеете в виду замкнуть контакты? если да то отсчет не случится и данных не будет все будет равну логическому нулю но мне не это нужно представьте сообащющий сосуд в котором например на менопласте лежит магнит а наверху геркон вода поднимает пенопласт и геркон замыкается появляются данные.
а 10 пин там нерабочая кнопка
поэтому я и просил нарисовать в paint'e или хоть где,как это все выглядет,одно и тоже описание мы можем представлять по разному .
что значит "нерабочая кнока" ? если она нерабочая.зачем она в скетче ?
у вас в скетче может случиться деление на 0 ,и тогда уже никто не не узнает : это в логике кода косяк или адуино "висит".
Я пытался сделать кнопку а после обратился сюда а кнопка так и осталась в скетче. что значит ардуино висит?
у меня при 0 секундах выдовало -1 и продолжалась работа
Пусть во фритцинге сразу рисует... а то в пайнте будет просто треш.
ок нарисую
Просто вам надо понять, что то, как вы объясняете свою мысли посторонним людям, сказывается на вашем программном коде. Т.е. вы представляете что-то одно, а произносите (и пишете в "программе") что-то совершенно другое. И вот это, другое, никогда не совпадёт с вашей мечтой.
Поэтому соберитесь, логично и последовательно опишите свой проект: какие есть компоненты, как они должны взаимодействовать, исключите двусмысленности (типа "включение-выключение по одному нажатию" - активация какого-то функционала может быть при замкнутом состоянии контакта, деактивация - при разомкнутом или же "первый клик по кнопке - активирует, второй - деактивирует"). Это позволит вам построить правильный алгоритм и перенести его в программный код.
получилось что то такое итак я хотел сделать чтобы я нажал отпустил не зажимая кнопу она включалась там подписана кнопка вроде все не слишком сложно надеюсь вы поймете
была идея сделать включение и выключение типо как любой электроприбор нажал на кнопку включился, нажал еще раз выключился у меня не получилось сделать, я обратился сюда в скетче осталась кнопка если что стоят два диода для "вида" типо. лсд экран 1602 геркон и кнопка это все.
Раньше опыта составления сложных схем не было
Ну вот нарисовали примерно так же, как объясняете. С нижних линий питания кинули на верхние только плюс и то на минус. А геркон подсоединили к плюсу, которого нет
Уберите пока дисплей с клубком проводов (выводите данные в Serial). В свойствах проводов есть цвет - покрасьте плюс в красный, GND в чёрный, остальное в цветное и поравняйте их так, чтобы было ясно что куда идет. Картинку можно не скриншотить, а экспортировать в PNG/JPG. Всё равно она вам еще пригодится для отчёта по проекту.
Ну вот нарисовали примерно так же, как объясняете. С нижних линий питания кинули на верхние только плюс и то на минус. А геркон подсоединили к плюсу, которого нет
Уберите пока дисплей с клубком проводов (выводите данные в Serial). В свойствах проводов есть цвет - покрасьте плюс в красный, GND в чёрный, остальное в цветное и поравняйте их так, чтобы было ясно что куда идет. Картинку можно не скриншотить, а экспортировать в PNG/JPG. Всё равно она вам еще пригодится для отчёта по проекту.
Ок я все на скорую руку делал и у меня макетная плата чуть другая мог случайно + к - присоеденить
примерно так получилось без лсд экрана
бблин
2 провода забыл покрасить
Хорошо, теперь пишите простой скетч, который будет в Serial выводить состояние кнопки - замкнута или разомкнута. Потом ещё пара шагов и увидите, как активировать и деактивировать блоки кода, связав это действие с кнопкой.
А толку. И во фиртцинге у ТС треш. Разруха начинается не в пейнте...
А толку. И во фиртцинге у ТС треш. Разруха начинается не в пейнте...
Научится, надеюсь. Когда строют дорогу, камни кладут по одному.
Главное ТС хочет научиться,ну хотябы свиду так кажеться. А тем кто хочет учиться,хочеться и помогать.
получилось что то такое итак я хотел сделать чтобы я нажал отпустил не зажимая кнопу она включалась там подписана кнопка вроде все не слишком сложно надеюсь вы поймете
О Еще один образец в копилку моей сортирной жывописи.
Приведу я Вам примерчик с фиксирующейся кнопкой. Пока кнопка нажата - светодиодик горит, отжата - не горит. По моему этого достаточно для решения Вашего вопроса
Для светодиода - сойдёт, для остального - не очень ;)