Редактирование: Очки с функцией костной проводимости

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 90: Строка 90:
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
 
<syntaxhighlight lang="javascript" line start="1" enclose="div">
  
#include <Volume.h>
+
#include "Arduino.h"
int inPin = 2; //пин, отвечающий за кнопку
+
#include "Cl_do_btn.h"
int spkr = 5; //пин, отвечающий за колонки
+
Cl_do_btn::Cl_do_btn(byte _pin, bool high, void (* _Do_Btn)()) {
int reading; //актуальное значение кнопки
+
   pin = _pin;
int previous = LOW; //старое значение кнопки
+
   low = !high;
long time = 0; //время работы
+
   Do_Btn = _Do_Btn;
long debounce = 200; //антидребезговое время
 
bool play = false; // флаг, включено ли проигрывание
 
Volume vol; //
 
float mv = 0; //
 
void setup(){
 
   pinMode(inPin, INPUT);
 
   pinMode(spkr, OUTPUT);
 
   vol.begin();
 
 
}
 
}
void loop(){  
+
void Cl_do_btn::setup() {
   //проверяем, лежит ли значение, которое передаёт аналоговый потенциометр, в интервале от 0 до 100 и присваиваем его mv
+
   //pinMode(pin, INPUT);// подключить кнопку
   mv = constrain(analogRead(A0) / 10, 0, 100) / 100.00;
+
   pinMode(pin, INPUT_PULLUP);// подключить кнопку 1 с подтяжкой
   //задержка
+
   btn = read(); // прочитать реальное значение на выводе
  delay(20);
+
}
   if (play){
+
void Cl_do_btn::loop() {
     vol.tone(1000, 255 * mv); //устанавливаем громкость
+
   if (! bounce && btn != read()) { // если прошел фронт изм на выводн
 +
    bounce = 1;                    // выставить флаг
 +
     past = millis();               // сделать временую засветку
 
   }
 
   }
   else{
+
   else if ( bounce && millis() - past >= 5 ) { // если прошло антидребезговое время
     vol.noTone(); //выключаем звук
+
     bounce = 0;      // то снять флаг
 +
    btn_old = btn ;
 +
    btn = read(); // прочитать реальное значение на выводе
 +
    if (! btn_old && btn)  Do_Btn();
 
   }
 
   }
  reading = digitalRead(inPin);
 
  if (reading == HIGH && previous == LOW && millis() - time > debounce) {
 
    if (!play) {
 
      play = true;
 
    }
 
    else {
 
      play = false;
 
      time = millis();
 
    }
 
  }
 
  previous = reading;
 
 
}
 
}
  
  
 +
void loop() {
 +
  v = !digitalRead(2);
 +
  battle = !digitalRead(3);
 +
  if (battle==1 && flag==0 && (millis()-timestep)>300){  // Отрабатываем нажатие кнопки..
 +
    flag = 1;
 +
    i++;
 +
    Serial.println(i);
 +
    timestep = millis();
 +
  }
 +
  if (battle==0 && flag==1){  // ..и отжатие
 +
    flag = 0;
 +
  }
 +
  if ((millis()-timestep)>2500 && i>1){ // Через 2.5 секунды после последнего нажатия кнопки запускается дальнейший скрипт
 +
    j = i;
 +
  }
 +
  //if (j>0 && (millis()-timestep)>5000 && (millis()-timestep)<6000){    Прошивка для двигателя (не использовалась)
 +
  //  digitalWrite(9,HIGH);
 +
  //} else {
 +
  //  digitalWrite(9,LOW);
 +
  //}
 +
  if (j>0 && v==HIGH && flag1==0 && c<180 && (millis()-timestep1)>1000){ // Снятие показания с датчика препятствий и
 +
    flag1 = 1;
 +
    timestep1 = millis();
 +
    c += 180/j;
 +
    servo1.write(c);                                                    // подача сигнала на сервопривод
 +
  }
 +
  if (j>0 && v==LOW && flag1==1 && (millis()-timestep1)>300){
 +
    flag1 = 0;
 +
    timestep1 = millis();
 +
  }
 +
 +
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div>
 
</div>
Вам запрещено изменять защиту статьи. Edit Создать редактором

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии Public Domain (см. Department of Theoretical and Applied Mechanics:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)