Нужно сделать чтобы эксперимент №17 из конспекта хакера (Пантграф http://wiki.amperka.ru/конспект-arduino:пантограф) управлялся через Serial монитор, допишите код плиз
Если по простому, то на проект не тянет. Код для получения int через Serial монитор Код (Text): void setup() { Serial.begin(9600); } void loop() { if (Serial.available()>0) { int val = Serial.parseInt(); Serial.println(val); } } В контексте эксперимента №17 Код (Text): // управлять сервоприводами (англ. servo motor) самостоятельно // не так то просто, но в стандартной библиотеке уже всё // заготовлено, что делает задачу тривиальной #include <Servo.h> #define POT_MAX_ANGLE 270.0 // макс. угол поворота потенциометра // объявляем объект типа Servo с именем myServo. Ранее мы // использовали int, boolean, float, а теперь точно также // используем тип Servo, предоставляемый библиотекой. В случае // Serial мы использовали объект сразу же: он уже был создан // для нас, но в случае с Servo, мы должны сделать это явно. // Ведь в нашем проекте могут быть одновременно несколько // приводов, и нам понадобится различать их по именам Servo myServo; void setup() { // прикрепляем (англ. attach) нашу серву к 9-му пину. Явный // вызов pinMode не нужен: функция attach сделает всё за нас myServo.attach(9); // инициирует последовательное соединение и задает скорость передачи данных в бит/c (бод). Serial.begin(9600); } void loop() { // функция получает количество байт(символов) доступных для чтения из последовательного интерфейса связи. if (Serial.available()>0) { // получаем отправленные значения, и приводим к int, если число не найдено в течении 1 сек., вернет 0. Настраивается через Serial.setTimeout () int val = Serial.parseInt(); // на основе сигнала понимаем реальный угол поворота движка. // Используем вещественные числа в расчётах, но полученный // результат округляем обратно до целого числа int angle = int(val / 1024.0 * POT_MAX_ANGLE); // обычная серва не сможет повторить угол потенциометра на // всём диапазоне углов. Она умеет вставать в углы от 0° до // 180°. Ограничиваем угол соответствующе angle = constrain(angle, 0, 180); // и, наконец, подаём серве команду встать в указанный угол myServo.write(angle); // возвращаем полученное значение для проверки Serial.println(val); } } UPD. Что-то вчера заработался, чтобы сразу передавать угол Код (Text): // управлять сервоприводами (англ. servo motor) самостоятельно // не так то просто, но в стандартной библиотеке уже всё // заготовлено, что делает задачу тривиальной #include <Servo.h> #define POT_MAX_ANGLE 270.0 // макс. угол поворота потенциометра // объявляем объект типа Servo с именем myServo. Ранее мы // использовали int, boolean, float, а теперь точно также // используем тип Servo, предоставляемый библиотекой. В случае // Serial мы использовали объект сразу же: он уже был создан // для нас, но в случае с Servo, мы должны сделать это явно. // Ведь в нашем проекте могут быть одновременно несколько // приводов, и нам понадобится различать их по именам Servo myServo; void setup() { // прикрепляем (англ. attach) нашу серву к 9-му пину. Явный // вызов pinMode не нужен: функция attach сделает всё за нас myServo.attach(9); // инициирует последовательное соединение и задает скорость передачи данных в бит/c (бод). Serial.begin(9600); } void loop() { // функция получает количество байт(символов) доступных для чтения из последовательного интерфейса связи. if (Serial.available()>0) { // получаем отправленные значения, и приводим к int, если число не найдено в течении 1 сек., вернет 0. Настраивается через Serial.setTimeout () int val = Serial.parseInt(); // и, наконец, подаём серве команду встать в указанный угол myServo.write(val); // возвращаем полученное значение для проверки Serial.println(val); } } Сервы под рукой нет, проверить нет возможности.