ДВС. От программирования далек, больше паяю. Но возникла необходимость (или блажь?) в применении ардуины. Уже НЕДЕЛЮ бьюсь над освоением arduino.exe и visual studio, ничего не получается. Может подскажете, покажете что где не так. При раздельном выполнении кодов для сервоприводов x и y проблем нет. Как только объединяю скетчи в один глючит серво x. Он вроде поворачивается согласно положению трекбара, но всё время срывается в положение 0 градусов. И кнопки управления серво y срабатывают через раз. Собственно скетч ардуино: Код (C++): #include <Servo.h> // подключаем библиотеку для серво Servo y; // объявляем переменную серво Servo x; int val; // переменная чтения с com int angle; // переменная для угла поворота серво y int xval;// переменная для угла поворота серво x void setup() { Serial.begin(115200); // подключаем com порт y.attach(6); // привязываем серво к выходу 6 y.write(0); x.attach(5); // привязываем серво к выходу 5 x.write(0); } //управление сервой y посредством кнопок с проги с 90 до 0 и обратно void loop() { // проверяем, поступают ли какие-то команды if (Serial.available()) { val = Serial.read(); // переменная val равна полученной команде if (val == 'C') { // цикл для поворота от 0 до 90 градусов при передаче в com с проги буквы С while (angle < 90) // чтоб кнопки в проге не срабатывали по нескольку раз { for (angle = 0; angle <= 90; angle++) { y.write(angle); // сообщаем серво угол поворота delay(20);}} // ждем 20 мс, пока серво не сделает поворот } } if (val == 'D') { // цикл для поворота c 90 до 0 градусов при передаче в com с проги буквы D while (angle > 0) // чтоб кнопки в проге не срабатывали по нескольку раз { for (angle = 90; angle >= 0; angle--) { y.write(angle); // сообщаем серво угол поворота delay(20);}} // ждем 10 мс, пока серво не сделает поворот } } //управление сервой x посредством трекбара с проги для поворота c 0 до 180 void serialEvent() { xval = Serial.parseInt(); if(xval!=0) { x.write(xval); } } Код студио: Код (C++): using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; namespace Microscop { public partial class Form1 : Form { SerialPort port; private void init() { port = new SerialPort(); port.PortName = "COM2"; port.BaudRate = 115200; try { port.Open(); } catch (Exception e1) { MessageBox.Show(e1.Message); } } public Form1() { InitializeComponent(); init(); } private void trackBar1_Scroll(object sender, EventArgs e) { port.WriteLine(trackBar1.Value.ToString()); label3.Text = "Угол наклона " + trackBar1.Value.ToString(); } private void button1_Click(object sender, EventArgs e) { port.Write("C"); } private void button2_Click(object sender, EventArgs e) { port.Write("D"); } private void label3_Click(object sender, EventArgs e) { } } }