Rovik & Breadboarder
Breadboarder Breadboarder
Привет, Ров, нашел на чердаке 7400 с кварцевыми триггерами от 1975 года и таймер 555. Думаю, подключить их к маленькому шаговым двигателю, чтобы сделать что-то вроде ретро-портативной штуки, которая реально будет прыгать по доске. Закинь свой код, посмотрим, какую скорость вытянем.
Rovik Rovik
Здорово, 7400, 555, степпер – вот где “золотая середина” для портативного устройства, готового к прыжкам. Бери макетку, заведи таймер, и пусть логические элементы NAND управляют подавлением. Вот код для загрузки: ```c // Таймер 555 в ШИМ 3.3В, 7400 для инвертирования и фиксации импульсов степпера int stepPin = 2; // Пин шага двигателя int dirPin = 3; // Пин направления int freq = 2000; // Частота ШИМ void setup() { pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); pinMode(8, OUTPUT); // Порог 555 pinMode(9, INPUT_PULLUP); // Разряд 555 } void loop() { digitalWrite(dirPin, HIGH); // Устанавливаем направление // Генерируем ШИМ цикл 555 (примерно) digitalWrite(8, HIGH); delayMicroseconds(1000); // 1 мс в высоким уровне digitalWrite(8, LOW); delayMicroseconds(1000); // 1 мс в низком уровне // Делаем шаг двигателем digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500); } ``` Помести его на макетку, увеличь частоту 555, посмотри, как этот маленький мотор поднимает плату – достаточно быстро, чтобы сделать прыжок за 2 секунды. Если нужна большая скорость, просто поставь диод на выход 555 и увеличь частоту. Давай посмотрим, как высоко ты сможешь взлететь!
Breadboarder Breadboarder
Отличный код, но это 555 – не настоящий ШИМ, просто грубый мигание. Если хочешь настоящий импульс для шага, подключи 555 к триггеру 74HC74, а потом используй его выход для управления пином шага. И не забудь, что драйверу шагового двигателя нужен ограничение тока, иначе он просто пожжёт макетку. Попробуй, но будь готов заменить этот 555 на нормальный драйвер, если начнёт скакать как сумасшедший.
Rovik Rovik
Ладно, делай как я сказал и фиксируй параметры. 74HC74 даст тебе четкие переходы, а 555 просто считает. Вот как это сделать: int stepPin=2; int dirPin=3; int ffOut=4; // 74HC74 Q out void setup(){ pinMode(stepPin,OUTPUT); pinMode(dirPin,OUTPUT); pinMode(ffOut,INPUT); } void loop(){ digitalWrite(dirPin,HIGH); while(digitalRead(ffOut)==LOW); digitalWrite(stepPin,HIGH); delayMicroseconds(200); digitalWrite(stepPin,LOW); } Добавь резистор на 100 Ом последовательно на каждую катушку, поставь диод для защиты от обратного ЭДС – и у тебя получится надежный, бесшумный платформенщик. Если начнет жаловаться – замени 555 на нормальный драйвер, но для первого запуска – давай посмотрим, как эта плата заработает.
Breadboarder Breadboarder
Отлично, но помни, у 74HC74 уровень сигнала Q низкий – всего 0.8 В, поэтому на вход импульса может быть небольшое дребезжание; поставь небольшой конденсатор на линию импульса, чтобы сгладить. И 100 Ом на катушку – это сильно убьёт крутящий момент – лучше используй 330 Ом или нормальный драйвер. Если плата начнёт отрываться, попробуй заменить 555 на таймер типа NE555, чтобы можно было менять период на ходу. Удачи, и будь осторожен с магнитным притяжением шагового двигателя к макетной плате.
Rovik Rovik
Зафиксируй это, ладно? Восемь десятых вольт, немного – добавь конденсатор 0.1 микрофарада на линию с переходом, будет более чистый импульс. Триста тридцать Ом на катушку – самое то, чтобы макет не заглох. Замени 555 на NE555 и подкрути период, как регулятор темпа на барабанах. Покрути, посмотри, как плата поднимется, а потом быстро переходи к следующему стенду. Держи поток непрерывным.