Обнуление переменной по нажатию кнопки
- Войдите на сайт для отправки комментариев
Вс, 04/01/2015 - 17:50
Здравствуйте, возникла проблема требуется обнулить переменную по нажатию кнопки как это можно сделать вот в этой программе:
#include <QuadDisplay.h> // Библиотека 7-ми сегментного индикатора #define DISP_PIN 2 // Порт к которому подключен индикатор (Цифровой порт №2) #define SENS A0 // Порт к которому подключен датчик тока (Аналоговый порт №0) float z_sens=0; // Переменная в которой хранится показание датчика тока float pokaz=0; // Переменная в которой хранится показание датчика тока в Амперах float tst=0; // Переменная в которой хранится момент времени появления тока float tsp=0; // Переменная в которой хранится момент времени отсутствие тока float tig=0; // Переменная в которой хранится момент времени работы датчика тока boolean pl=false; // Флаг вывода индикатора void setup() { Serial.begin(9600); // Установка связи с COM портов } void loop() { // Чтение данных с датчика тока z_sens=analogRead(SENS); // Перевод из условных единиц в Амперы pokaz=(z_sens-510)*5/1024/0.04-0.04; //Отображаем количество секунд, прошедшее со старта скетча float currentTime = (float)millis() / 1000; //displayFloat(DISPLAY_PIN, currentTime, 1); // Условия для вывода на экран последнего показания датчика тока // и отметки момента времени (старт, стоп) if (pokaz>0.08) { pl=true; tst=currentTime; } if (pokaz<0.08) { pl=false; tsp=currentTime; } // Получение временного интервала с момента появления тока // в цепи до момента его отсутствия tig=tst-tsp; // Вывод на индикатор if (pokaz>0.09 && pl==true) { //Вывод на индикатор показания датчика тока //displayFloat(DISP_PIN, pokaz,3); // Выод на индикатор интервала с момента появления // тока в цепи до момента его отсутствия displayFloat(DISP_PIN, tig,1); } Serial.println("pokaz"); Serial.print(pokaz); //Вывод в COM порт Serial.println("Time itog"); Serial.print(tig); //Вывод в COM порт Serial.println("Time start"); Serial.print(tst); //Вывод в COM порт Serial.println("Time stop"); Serial.print(tsp); //Вывод в COM порт delay(5); }
Обнулять нужно переменную tst. Кнопка подключена к 3 цифровому пину и к GND.
1. Про правильное подключение кнопки читаете тут: http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-novichku
2. В начале скетча объявляете пин #define BUTTON_PIN 3
3. В setup() задаете режим его работы pinMode(BUTTON_PIN,INPUT); (Впрочем, это не обязательно, по умолчанию все порты INPUT.)
4. В loop() читаете состояние порта и по условию обнуляете переменную tst. if(digitalRead(BUTTON_PIN)) {tst=0;} Бороться с дребезгом контактов в Вашем случае, насколько я понимаю, не нужно.
Успехов.