Запуск скетча с физической кнопке.
- Войдите на сайт для отправки комментариев
Пт, 10/01/2020 - 23:59
Всем привет. Скетч написан и проверен в работе.Хоть убей но не получается дописать чтобы производить его запуск с кнопки.
Всем привет. Скетч написан и проверен в работе.Хоть убей но не получается дописать чтобы производить его запуск с кнопки.
[code] #include <config.h> #include <coolant_control.h> #include <defaults.h> #include <eeprom.h> #include <gcode.h> #include <grblmain.h> #include <limits.h> #include <motion_control.h> #include <nuts_bolts.h> #include <planner.h> #include <print.h> #include <protocol.h> #include <report.h> #include <serial.h> #include <settings.h> #include <spindle_control.h> #include <stepper.h> #include <AccelStepper.h> #include <MultiStepper.h> int pin=12; AccelStepper stepper1(1,5,2); AccelStepper stepper2(1,6,3); void setup() { { pinMode(12, OUTPUT); digitalWrite(13,LOW); digitalWrite(12,HIGH); delay(2000);} stepper1.setMaxSpeed(1000.0); stepper1.setAcceleration(10000.0); stepper1.moveTo(1400); stepper2.setMaxSpeed(1000.0); stepper2.setAcceleration(10000.0); stepper2.moveTo(1400); } void loop(){ if (stepper2.distanceToGo() == 0) delay(1000); if (stepper2.distanceToGo() == 0) digitalWrite(12,LOW); stepper1.run(); stepper2.run(); } [/code]while(digitalRead(knopka)==HIGH);
Ох и наинклюдили же Вы!
Вам исполнитель нужен или что?
Исполнитель
Во сколько цените свою кнопку?
500р
В строку #29:
knopka - номер пина
Завтра проверю. А почему это условие не пишется в loop?
Нужен был запуск скетча с кнопки. Запуск скетча начинается с первых строк setup()
Аналоговый вход могу использовать? Или 13 пин нормально отработает? Все остальные заняты
Кнопку самую обычную могу взять? Один вход к пину. Второй к земле и все? Input-pullup все наводки уберёт?
A0-A5 с лёгкостью . Если до кнопки не 10 метров, то внутреннего пуллапа должно хватить.
Шилд cnc v4. Там только А6 и А7. Сжёг нано уже сегодня с экспериментами с кнопкой
На 6 и 7 пуллапы и дижиталриды не работают.
Значит 13 пин
Кнопка будет работать.
Нажал (замкнул) - цикл пошёл.
Если разомкну цикл дойдёт до конца?
Скинь плиз куда денежку перевести. Понял и без проверки уже косяки мои.
(голосом Дроздова) В этой теме, мои дорогие друзья, вы можете наблюдать виртуальный секс молодого, неопытного заказчика, и матёрого, потрёпанного жизнью исполнителя. Хитрый заказчик сумел приманить исполнителя вкусной прикормкой, и теперь изводит его вопросами, ходя вокруг да около. Посмотрите на эти ритуальные танцы, и подумайте - а стоит ли оно того? Не попадёт ли исполнитель в кабалу к заказчику за столь малый прикорм?
Спалите ещё одну Нану, значит.
Ставьте внешнюю подтяжку на 10ком к VCC на A6 и читайте его через analogRead()
Прикорм высылать на wrk.sadman@gmail.com
.Привет всем.предложенное решение -не работает.
Какое из них не работает?
скетч не запускается при нажатие кнопки.
[code] int switchPin = 12; int ledPin = 5; void setup() { pinMode(switchPin, INPUT_PULLUP); pinMode(ledPin, OUTPUT); } void loop() { // включаем всетодиод при нажатой кнопке if(digitalRead(switchPin) == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } } [/code]при таком коде с синтаксисом if кнопка работает.
[code] int switchPin = 12; int ledPin = 5; void setup() { pinMode(ledPin,OUTPUT); pinMode(switchPin, INPUT_PULLUP); while(digitalRead(switchPin)==HIGH){ digitalWrite(ledPin,HIGH ); } } void loop() { } [/code]при таком синтакс while неработает
А что мотор крутит?
Какое из них не работает?
ваше предложенное решение.
Всё работает, что Вы тут рассказываете..
int switchPin = 12; int ledPin = 13; void setup() { pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); pinMode(switchPin, INPUT_PULLUP); while (digitalRead(switchPin) == HIGH); digitalWrite(ledPin, HIGH ); } void loop() { }[code] #include <config.h> #include <coolant_control.h> #include <defaults.h> #include <eeprom.h> #include <gcode.h> #include <grblmain.h> #include <limits.h> #include <motion_control.h> #include <nuts_bolts.h> #include <planner.h> #include <print.h> #include <protocol.h> #include <report.h> #include <serial.h> #include <settings.h> #include <spindle_control.h> #include <stepper.h> #include <AccelStepper.h> #include <MultiStepper.h> byte switchPin=12; byte ledPin=13; AccelStepper stepper1(1,5,2); AccelStepper stepper2(1,6,3); void setup() { pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); pinMode(switchPin, INPUT_PULLUP); while (digitalRead(switchPin) == HIGH);{ digitalWrite(ledPin,HIGH); delay(2000); stepper1.setMaxSpeed(1000.0); stepper1.setAcceleration(10000.0); stepper1.moveTo(1400); stepper2.setMaxSpeed(1000.0); stepper2.setAcceleration(10000.0); stepper2.moveTo(1400); } } void loop(){ if (stepper2.distanceToGo() == 0){ delay(3000); digitalWrite(ledPin,LOW);} stepper1.run(); stepper2.run(); } [/code]всем привет.с кнопке работает спасибо.как сделать чтобы захотел и запустил с кнопке а только один раз срабатывает.
(голосом Дроздова) В этой теме, мои дорогие друзья, вы можете наблюдать виртуальный секс молодого, неопытного заказчика, и матёрого, потрёпанного жизнью исполнителя. Хитрый заказчик сумел приманить исполнителя вкусной прикормкой, и теперь изводит его вопросами, ходя вокруг да около. Посмотрите на эти ритуальные танцы, и подумайте - а стоит ли оно того? Не попадёт ли исполнитель в кабалу к заказчику за столь малый прикорм?
как в воду глядел )))
как в воду глядел )))
Опыт не пропьёшь :))
Цена решения задачи?сроки?
Цена решения задачи?сроки?
с Садманом41 рассчитались?
Конечно.
Конечно.
тогда просить его, он точно сделает любые хотелки
Вы наверное только учитесь?
С прискорбием вынужден констатировать, что эксперимент показал следующее: несмотря на то, что на дворе уже 2020 год, после рассасывания проблемы у заказчиков всё ещё сразу отшибает память и выполнением обещания с такой же скоростью и настойчивостью, с какой они просили о решении, которое "очень нужно", они не заморачиваются.
С прискорбием вынужден констатировать, что эксперимент показал следующее: несмотря на то, что на дворе уже 2020 год, после рассасывания проблемы у заказчиков всё ещё сразу отшибает память и выполнением обещания с такой же скоростью и настойчивостью, с какой они просили о решении, которое "очень нужно", они не заморачиваются.
чё так витиевато, прямо скажи - кидалово )))
Не совсем.
Первое обещание было исполнено (впрочем, на этом этапе проблемы ещё оставались), а вот последующая доводка этого, не скрою, незамысловатого скетча до состояния, удовлетворяющего заказчика, де-факто была оценена им в 0 рэ.
Так это-ж давно известная истина: Никогда не нужно делать что-то, полностью работающее. Нужно чтобы всегда оставалось какая-то деталь, требующая дальнейшей доработки (но чтобы после каждой доработки конечно прогресс был). Т.е. - нужно брать пример с той лягушки из притчи, которая всегда прыгает на половину оставшегося расстояния.
Это гарантирует от "забывчивости" оплаты от заказчика. ;)
Да это не заработок был, а эксперимент: заказчику было предложено самому оценить мою полезность. Оценка - 0x00 ;)
Да это не заработок был, а эксперимент: заказчику было предложено самому оценить мою полезность. Оценка - 0x00 ;)
Так он же рассчитался, а остальное, это Вы свои косяки исправляли, хорошо еще в суд не потащил, за моральный с матерьяльным.))))
Доработка так же была оплачена.И последовала еще просьба по доработке которая так же будет оплачена.
с Садманом41 рассчитались?
Конечно.
заказчику было предложено самому оценить мою полезность. Оценка - 0x00 ;)
как в воду глядел )))
Дауш. 0х00. Хоть "х" остался от шеснатцатиричнай систэмы )))
Да это не заработок был, а эксперимент: заказчику было предложено самому оценить мою полезность. Оценка - 0x00 ;)
Ну все же знают - "готовый скетч ничего не стоит" :)
здравствуйте,есть скетч,работает на MAX7219 кириллицей в одну строку.Что нужно добавить чтоб было 2x8 и при нажатии кнопки текст менялся
#include <SPI.h> // Подключаем библиотеку SPI #include <Adafruit_GFX.h> // Подключаем библиотеку Adafruit_GFX #include <Max72xxPanel.h> // Подключаем библиотеку Max72xxPanel int pinCS = 9; // Указываем к какому выводу подключен контакт CS int numberOfHorizontalDisplays = 1; // Количество матриц по горизонтали int numberOfVerticalDisplays = 8; // Количество матриц по-вертикали Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); String tape = ""; int wait = 100; // интервал, чем меньше тем бытрее бежит строка int spacer = 1; // Промежуток между символами (кол-во точек) int width = 5 + spacer; // Ширина шрифта составляет 5 пикселей void setup() { Serial.begin(9600); tape = utf8rus("московскуии вокзал"); matrix.setIntensity(5); // Задаем яркость от 0 до 15 matrix.setRotation(3); // Направление текста 1,2,3,4 } void loop() { for ( int i = 0 ; i < width * tape.length() + matrix.width() - spacer; i++ ) { matrix.fillScreen(LOW); int letter = i / width; // номер символа выводимого на матрицу int x = (matrix.width() - 1) - i % width; int y = (matrix.height() - 8) / 2; // отцентрировать текст по вертикали while ( x + width - spacer >= 0 && letter >= 0 ) { if ( letter < tape.length() ) { matrix.drawChar(x, y, tape[letter], HIGH, LOW, 1); } letter--; x -= width; } matrix.write(); // выведим значения на матрицу delay(wait); } } /* Функция перекодировки русских букв из UTF-8 в Win-1251 */ String utf8rus(String source) { int i, k; String target; unsigned char n; char m[2] = { '0', '\0' }; k = source.length(); i = 0; while (i < k) { n = source[i]; i++; if (n >= 0xC0) { switch (n) { case 0xD0: { n = source[i]; i++; if (n == 0x81) { n = 0xA8; break; } if (n >= 0x90 && n <= 0xBF) n = n + 0x2F; break; } case 0xD1: { n = source[i]; i++; if (n == 0x91) { n = 0xB7; break; } if (n >= 0x80 && n <= 0x8F) n = n + 0x6F; break; } } } m[0] = n; target = target + String(m); } return target; }