разделить условия с установкой параметров и выполнение. Например, если нужно зажечь/погасить два светоидода, то в больших условиях выясняем и выставляем переменные led1 и led2, а после проверки больших условий в одном или двух параметрах выставляем пины по переменным led1 led2
Запоминать нажатия на кнопку (не сколько раз нажата, а через какое время и на сколько), а потом при нажатии на 2 кнопку воспроизводить нажатия на светодиоде или серве
Сделал второй скетч, на подсчет время отжатия. А теперь вопрос, как объединить эти скетчи в 1 и чтобы не конфликтовало и сохранялась точность. Код (C++): int cli, fo, On = 1, On1 = 1, clic; int clicks[1]; unsigned long duration; void setup() { pinMode(7, INPUT_PULLUP); pinMode(6, INPUT_PULLUP); pinMode(5, INPUT_PULLUP); pinMode(13, OUTPUT); Serial.begin(9600); } void loop() { if (!digitalRead(7)) { On1 = 0; delay(200); } if (cli < 1) { if (On1 == 0) { if (On == 1) { duration = pulseIn(7, HIGH, 3000000); duration = (duration / 1000); Serial.println(duration); clicks[cli] = duration; cli++; } } } if (clicks[0] > 0) { if (cli == 1) { Serial.println("Record Finished"); cli = 2; } } else { duration = pulseIn(7, HIGH, 3000000); duration = (duration / 1000); Serial.println(duration); clicks[0] = duration; cli++; } if (cli == 2) { if (!digitalRead(6)) { On = !On; Serial.println(On); delay(200); } if (On == 0) { clic = (clicks[0] - 5); Serial.print(clicks[0]); Serial.print("\t"); Serial.println(clic); digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW); delay(clic); } } }
я бы так написал и короче, - 1 переменная Код (C++): clicks[cli] = pulseIn(7, HIGH, 3000000) /1000; Чем Код (C++): duration = pulseIn(7, HIGH, 3000000); duration = (duration / 1000); Serial.println(duration); clicks[cli] = duration;
Код (C++): bool state; for (i = 0; i < 20; i++;){ clicks[i] = pulseIn(7, state, 3000000) /1000; state = !state; }
Кто-то шпионажем решился заняться? Азбука Морзе - мощная вещь! Но судя по возрасту Crazyday, он наверное хочет на экзаменах шпаргалки получать по такому принципу. А если честно, то зачем Вам это?
Ну мне кажется, что мой вариант, как-бы реальнее)))))))))))). Щас блин экзамены такие, что хоть так изощряйся!
Значит билеты выучить лень, а морзянку нет? Сомневаюсь, лень она не выбирает извилины, она косит весь мозг.
Щас давно билетов нет. Дают задания и выполняй сиди. А что дадут, тут кампот-знает. Тем более лучше голову забить изобритением морзянки из ардуино, чем лить школьную воду в свой мозг. Я с вами согласен, что учить надо. Я сам сдавал без шпргалок, но блин - тут явная лень к обучению. Хотя мы щас тут обсуждаем его, а он правда не необитаевом осторове, на котором есть интернет, изобретает морзянку, что-бы отправить SOS, вместо того, что-бы сказать это через весь инткренет!!!!
Ниже код. Допилить напильником до своих потребностей не сложно. Сейчас 8 пин на кнопку морзянки, 9 на запуск вечного повтора. Для примера массив на 100 событий, можно расширить, главное чтобы в память влезло. Важно! программного антидребезга в примере нет, то есть записывать будет вместе с ним, что очень заметно опустошает память. Выхода два, или допилить программным антидребезгом, либо поставить на кнопку 8 аппаратный. Код (C++): unsigned int pressed[100]; // 100 событий (включая дребезг, если он есть) int count = 0; unsigned long timer; bool LH = 0; void setup() { // put your setup code here, to run once: pinMode(8, INPUT_PULLUP); pinMode(9, INPUT_PULLUP); pinMode(13, OUTPUT); digitalWrite(13, LOW); //ждем первого нажатия while (digitalRead(8)); digitalWrite(13, HIGH); } void loop() { // записываем timer = millis(); while (digitalRead(8) == LH) { // ждем нажатия/отжатия if (!digitalRead(9)) Play(); if (count > 99) Play(); } digitalWrite(13, LH); pressed[count] = millis() - timer; count++; LH = !LH; } void Play() { // вечный повтор while (1) { LH = 1; int count2 = 0; for (int i = 0; i < count; i++) { digitalWrite(13, LH); timer = millis() + pressed[count2]; while (timer > millis()); count2++; LH = !LH; } } }
лень- двигатель прогресса. Только в школах, например, сейчас закон божий заставляют учить (под разными названиями), да и кроме мракобесия треша полно. Физику, особенно оптику (а некоторым надо начать с природоведения за 4 класс) знать надо , математику, английский, а всякое словоблудие вроде уже умершей философии или , как я упоминал, мракобесия лучше и не читать вовсе, мозг он, знаете ли, не помойка.
100nF = 0.1uF - словарь с докторского на онкельский, никто бы не допер без подсказки. Вариант рабочего кода антидребезга через прерывания продолжаю ждать. Согласен на неадаптированную версию под С. Насчет парникового эффекта продолжаю верить что дело в разнице между лучевым и конвективным способом передачи тепла.
теория Дарвина - не вопрос веры, а уже давно установленный и доказанный факт, не менее доказанный, чем , например, теория относительности или постулаты квантовой механики. Вы и биологию в школе тоже прогуляли? Имхо если вы таким образом "верите ли" ставите вопрос, то вам надо сходить на урок биологии в 5-6 класс. философия как наука умерла в 1859 году, поскольку философы перестали понимать математику, лежащую в основе краеугольных наук - физики и биологии. Это даже сами философы признали, например Файерабенд и Поппель.