Здравствуйте. Подскажите пожалуйста может у кого есть ссылка на обучающий материал, где доступным языком написано как подключить контроллер к USB и реализовать через ПК управление контроллером. Например при нажатии кнопки на ПК в написанной на С++ программе получать логическую единицу на одном из выводов контроллера.
На самом деле чтобы полноценно делать то что вы описали требуется знаний несколько больше чем может быть в одной статье с доступным языком Для начала, научитесь управлять пинами ардуина без всякой связи, если не умеете то тут есть хороший набор видео и статей. Далее, научитесь управлять арудином через монитор порта, что идет в составе Arduino IDE. Если вы совсем новичке, можете почитать эту серию статей. Далее, вам потребуется разобраться с работой с COM портом на вашем ПК, а точнее в вашей операционной системе, для этого придется использовать Яндекс или Гугл, материала вагон и телега. Именно через COM порт вы сможете из вашей программы на С++ обобщатся с ардуином. После чего в зависимости от вашей операционной системы придется научится следить за нажатиями кнопок и отправлять в COM порт соответствующие данные на ардуин. Если не лень покопаться в коде и С++ вы знаете достаточно, можете почитать о моем проекте, и заглянуть в исходный код, там как раз идет управление платформой с клавиатуры в реальном времени, правда я там использую XBee но суть одна. Стати тут. В частности вас там должно заинтересовать файл WinCom.cpp в котором как раз идет работа с COM портом и Main.cpp функция controlPlatform() там идет обработка нажатых кнопок ну и файл для собственно самой платформы. В целом это все базовый весьма простой код, для первой "черновой"стадии проекта, но думаю вполне понятен, конечно вы не буквально вчера взяли в руки книгу по С++, выкинув лишнее или взяв нужные куски можете спокойно сделать то что описали выше в самой простой форме
arduino Код (C): void setup() { // put your setup code here, to run once: Serial.begin(9600); for (int i = 2; i < 10; ++i) { pinMode(i, OUTPUT); } } void loop() { // put your main code here, to run repeatedly: while (Serial.available() > 0) { char pin=Serial.read(); if (pin>1 && pin<10) digitalWrite(pin, !digitalRead(pin)); } } processing Код (Java): import processing.serial.*; Serial port; int pin; String s; void setup() { size(200, 200); noStroke(); background(0); port = new Serial(this, "COM4", 9600); s = new String("no data"); textSize(18); } void draw() { // keep draw() here to continue looping while waiting for keys background(0); stroke(255); text(s, 10, 30); } void keyPressed() { int keyIndex = -1; if (key >= '2' && key <= '9') { keyIndex = key - '0'; } if (keyIndex == -1) { s="press a num key in 2..9"; } else { pin=keyIndex; s=Integer.toString(pin); port.write(pin); } } void stop() { port.clear(); port.stop(); } P.S. Что конечно же не освобождает вас от изучения всего того, что посоветовал @NR55RU
Помогите разобраться , почему у меня при подключении , сервомотор запитываю от внешнего питания , а ардуино запитываю от USB и как только подцепляю общий минус GND У МЕНЯ ПРОИСХОДИТ ЗАМЫКАНИЕ, МЕЖДУ АРДУИНО И КОМПОМ? НА СЕРВОМОТОРЕ ПРОВОДА КОРИЧНЕВЫЙ МИНУС, ОРАНЖЕВЫЙ СИГНАЛЬНЫЙ,И КРАСНЫЙ ПЛЮС.Заранее благодарю, плата УНО
почему что я такого нагородил, как и положенно общий минус между платой и питанием серво двигателя , что я не так что-то сделал?
Правильно говорить не минус, а ноль. Минус указывает на двухполярное питание, что в данном случае не так. И потом - чуть младше меня, а русский так и не осилил. Стыдно должно быть. Я ничего не понял. Либо схему давай, либо пиши правильно - со знаками препинания. Или другого попроси со слов написать.
Замыкание у Вас происходит по той простой причине, что Вы соединяете проводником минус питания моторчика и минус от USB. Проще говоря Вы их замыкаете друг на друга. Но что-то (даже боюсь представить что) мне подсказывает, что под "ЗАМЫКАНИЕМ" Вы понимаете электрический пробой, который возникает при подключении USB кабеля от Ардуино к компьютеру. Т.е. Вы пытаетесь подключить USB кабель и возникает искра (вполне вероятно, что сильная). Правильно ли я перевел Вашу мысль на человеческий язык? PS: чужие темы лучше не трогать -- не хорошо...
Подаем питание на серводвигатель то есть постоянное напряжение (это плюс и минус питание 5 вольт, так как другого там не положено только постоянное не какого двух полярного ни переменного ) от внешнего блока питания, а на ARDUINO UNO (это плата на которой расположено микроконтроллер)питание от usb. Да все верно. А как же подключать правильно его минус если например нужно мониторить через уезби
Тогда следующая порция наводящих вопросов: есть ли заземление в розетке, в которую включен компьютер? что-за блок питания моторчика, предусмотрено ли в нём заземление? Если в БП моторчика есть заземление, то соединены или нет заземление БП моторчика и заземление БП компьютера? Если в БП моторчика заземления нет, есть ли гальваническая развязка между низковольтной частью и высоковольтной?
не негде нету не там не там, все понял я Вашу мысль спасибо большое.Подключал к ноутбуку с включенным блок питанием , мысли были на это но уже времени много было не стал проверять, короче попробую отключить от питания ноутбук и моторчик подключу через крону.Спасибо еще раз
в моем БП от ноута земля в ноут не заходит. Поэтому я без проблем соединяю всё в подряд. И дальше что? Каким образом образовывается цепь для протекания тока?
Прочитав, немножко обалдел. И решил перевести с русского на русский. 1. Отвинтите на розетке винтик и снимите крышечку. Посмотрите, сколько проводов подходит к розетке, если два, то она без заземления. Пальцами и отверткой туда не лазить! Этот вид спорта пока не для вас. 2. Посмотрите на вилку от компьютера, которую втыкаете в розетку. На ней, прямо на корпусе, посередине, есть блестящая металлическая полоска. Это заземление, предназначенное для контакта с третьим проводом розетки. На вашем блоке питания мотора есть такая? 3. Если есть, то переходим к третьему пункту - проверяем, есть ли контакт "земли" блока питания моторчика, и "земли" блока питания компьютера. Если они включены через примитивный удлинитель без контактов заземления, то от третьего провода нет никакого толка. И хотя на каждом блоке питания вольтметр покажет пять или сколько там у вас, вольт, разница между этими блоками питания может быть большой. 4. Подключите один щуп омметра (если нет, то контакт низковольтной лампочки, подключенной к батарейке) к вилке блока питания, а другим потычьте в выводы. Если прибор что-то покажет (или лампа загорится) это плохо. Результаты - в студию. Вот так примерно. Эту инструкцию можнт понять и выполнить кто угодно. Гуглить же "гальваническую развязку" можно месяцами.
Это как ? Вы же с ней через UATR общаетесь, значит программа для обработки приходящей информации через USB кабель в Ардуино все равно потребуется. А с компа туда можно отправлять из любой среды разработки - лишь бы она умела работать с COM портом.