Jump to content
Sign in to follow this  
zoom-0

arduino и джойстик. подскажите.

Recommended Posts

Posted (edited)

Всем здравствуйте. Народ, подскажите в таком деле.  Как заставить один мотор при управлении джойстиком изменять мощность и направление? 
Вся суть такая: собрал пульт на ардуино с передатчиком nrf24l01 ,на пульте есть два  джойстика - один джойстик управляет двумя серво по осям, на втором джойстике ось Х сервомотор поворота передних колес , а ось Y  это будет основной мотор, вот его не могу заставить крутиться как нужно. Это будет радиоуправляемая машина.  То есть от джойстика она должна ехать с регулировкой мощности (скорости ) вперед и назад от центральной точки джойстика. Пробовал  прописать :

...(joyY), 0, 1023, -255, 255)...      но в этом случае по шим ключ-мосфет  работает только от 0 в сторону +255 и то как-то не корректно. 

подскажите как правильно написать : если джойстик в среднем потожении (+- 5 градусов) мотор выключен, если в сторону +255 едем вперед, если в сторону -255 едем назад. 

Как правильно прописать команду если ,к примеру, я хочу вывести значения движения вперед на 6pin (шим) , а значения движения назад на 5pin (шим). Два этих выхода я подкину к драйверу двигателя.

 

{

if (digitalRead(joyY), 500, 520, 0, 0)

digitalWrite(6,LOW)

digitalWrite(5,LOW)

if (digitalRead(joyY), 521, 1023, 0, 255)

digitalWrite(6,0, 255)

digitalWrite(5,LOW)

if (digitalRead(joyY), 0, 499,0, 255)

digitalWrite(6,LOW)

digitalWrite(5,0, 255)

}         вот так верно будет ?

Edited by zoom-0

Share this post


Link to post
Share on other sites

спасибо за ответ, ( ничЁсе скока циферок в коде... каждое деление прописали...) но сделал немного по другому, у кого-то из скетча дернул кусок :

  if (recieved_data[0] >=128 && recieved_data[0] <=189)data = recieved_data[0], bspeed = map(data, 189, 128, 255, -255), backward(bspeed);
  if (recieved_data[0] >=201 && recieved_data[0] <=255)data = recieved_data[0], fspeed = map(data, 255, 201, 255, -255), forward(fspeed);
  if (recieved_data[0] >190 && recieved_data[0] <200)data = recieved_data[0], stop();

тоже поставил н-мост (но схема другая, тоже на 6 транзюках) и вот тут началось...

спаял... транзисторы сами немного открываются , двигатель покряхтывает, потом начинает крутиться , и все это при условии, что я никаких команд ему не даю. спаял три моста, менял резисторы. В разных мостах делал разные транзисторы. (кт816-817 / 805-837 / 972-973 ) результат всегда один - транзисторы открываются без сигнала и одна пара жутко греется. 

выпаял все из платы - собрал на макетке ( что бы легче резисторы подбирать ), а подбирать ничего не нужно ! на макетке работает идеально ! спаял снова на другой плате... и опять греется и сами открываются. плату помыл. не помогло. Плюнул на эстетичность, собрал опять , но уже на маленькой макетке, и макетку запихал в машину :). все работает.

 

Share this post


Link to post
Share on other sites

Вебинар STM32G0 – новый лидер бюджетных 32-битных микроконтроллеров от STMicroelectronics

Компания Компэл приглашает вас 25 сентября принять участие в вебинаре, который посвящен новому семейству микроконтроллеров STM32G0. Вебинар рассчитан на технических специалистов и тех, кто хорошо знаком с семейством STM32. На вебинаре будут освоены современные методы тестирования производительности микроконтроллеров на примере самых бюджетных 32-битных семейств общего назначения STM32G0 и STM32F0 и проведено их подробное сравнение.

Подробнее

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Сообщения

    • Враг визжит - перевирают его видишь ли.  Нет не перевираю я тебя, а лишь обнажаю суть.  И да, я опять  ошибся, опять пеиеоценил твою , нет не личность, а душонку - не холоп ты, а холуй.   
    • Вам-бы, для просвещения, немножко по-гуглить, тогда  и узнали какая у них ( у улиток) двуполая любовь....может тоже станете специалистом.
    • Было бы интересно посмотреть, заранее спасибо! Видел схемы с индуктивным токовым делителем, но это не совсем то, что мне нужно. В моём случае тиристор включается один раз и остаётся включенным, пока не разрядится конденсатор. Поэтому в моём случае критично именно одновременное их открытие, чтоб допустимый пиковый ток распределился пускай и неравномерно, но хотя бы в пределах разброса вольт-амперных характеристик
    • Разницы в звуке не будет.@finn32    Так и не надо! .  А если (гулять так гулять) санкены в ВК - 2SA1694 - 2SC4467 !?  
    • Прошу прощения - может быть не в тему! Но раз уж здесь зашла речь о кнопочках... Не могу не поделиться Простая до глупости, надежная как танк, не требует дежурного питания. Работает непрерывно уже несколько лет во многих проектах. 
    • В питание с такими вопросами. Помимо трансформатора ещё кое-что понадобится.
    • Всем, доброго времени суток! Давно хотел хороший звук дома. Магазинный либо неоправданно дорого, либо не то пальто. По отзывам и описанию понравился данный усилитель. Но к сожалению, с электроникой на Вы и шепотом. Руки не совсем из жопы, но тут дело то серьёзное. Было принято решение заказать готовый комплект электроники. Но остался открытым один вопрос. Какой трансформатор для блока питания(трансформатор, мост, фильтр) ставить? Какое напряжение и ток должны быть на вторичных обмотках без нагрузки, для двух каналов? Нагрузка 8Ом 40(max 80)Ватт  p.s: прошу прощения, если задаю очевидный вопрос. Я правда перечитал всю эту ветку форума, да и не только. Но информации слишком много (включая флуд) и возможно я просто пропустил то что мне нужно. Пожалуйста, ткните носом.
×
×
  • Create New...