Резюме.
Это не настоящая мраморная горка... или всё-таки это она?
Вот твой мрамор... Я не хочу его, так что забери его обратно... Нет, это твой мрамор, вот он...
Эта дискуссия продолжается до тех пор, пока вы не выключите устройство.
В коробке вы можете установить два шаговых двигателя 28BYJ (невероятно дешёвые) или немного меньшую версию 24BYJ.
Источник питания: три батарейки АА.
Убедитесь, что обе руки находятся в одной линии, иначе мрамор не будет следовать по траектории.
Этот скетч Arduino заставляет его работать:
//Режим полного шага Nano.
//512 >> 360 градусов, 1,4 шага на градус.
//28BYJ Красный + Оранжевый Желтый Розовый Синий
//24BYJ Красный + Черный Желтый Коричневый Синий
Int M1A = 9; int M1B = 10; int M1C = 11; int M1D = 12;
Int M2A = 2; int M2B = 3; int M2C = 4; int M2D = 5;
Интегральное число t = 3;
void setup()
{
pinMode(M1A, OUTPUT); pinMode(M1B, OUTPUT); pinMode(M1C, OUTPUT); pinMode(M1D, OUTPUT);
pinMode(M2A, OUTPUT); pinMode(M2B, OUTPUT); pinMode(M2C, OUTPUT); pinMode(M2D, OUTPUT);
)
void loop()
{
для (int x=0; x<180;x++){
//Двигатель 1, вращение против часовой стрелки.
digitalWrite(M1A, LOW); digitalWrite(M1B, LOW); digitalWrite(M1C, HIGH); digitalWrite(M1D, HIGH); delay(t);
digitalWrite(M1A, LOW); digitalWrite(M1B, HIGH); digitalWrite(M1C, HIGH); digitalWrite(M1D, LOW); delay(t);
digitalWrite(M1A, HIGH); digitalWrite(M1B, HIGH); digitalWrite(M1C, LOW); digitalWrite(M1D, LOW); delay(t);
digitalWrite(M1A, HIGH); digitalWrite(M1B, LOW); digitalWrite(M1C, LOW); digitalWrite(M1D, HIGH); delay(t);}
для (int x=0; x<180;x++){
//Мотор 1 в режиме против часовой стрелки.
digitalWrite(M1A, HIGH); digitalWrite(M1B, LOW); digitalWrite(M1C, LOW); digitalWrite(M1D, HIGH); delay(t);
digitalWrite(M1A, HIGH); digitalWrite(M1B, HIGH); digitalWrite(M1C, LOW); digitalWrite(M1D, LOW); delay(t);
digitalWrite(M1A, LOW); digitalWrite(M1B, HIGH); digitalWrite(M1C, HIGH); digitalWrite(M1D, LOW); delay(t);
digitalWrite(M1A, LOW); digitalWrite(M1B, LOW); digitalWrite(M1C, HIGH); digitalWrite(M1D, HIGH); delay(t);}
Задержка (500);
для (int x=0; x<180;x++){
//Двигатель 2 в режиме против часовой стрелки.
digitalWrite(M2A, HIGH); digitalWrite(M2B, LOW); digitalWrite(M2C, LOW); digitalWrite(M2D, HIGH); delay(t);
digitalWrite(M2A, HIGH); digitalWrite(M2B, HIGH); digitalWrite(M2C, LOW); digitalWrite(M2D, LOW); delay(t);
digitalWrite(M2A, LOW); digitalWrite(M2B, HIGH); digitalWrite(M2C, HIGH); digitalWrite(M2D, LOW); delay(t);
digitalWrite(M2A, LOW); digitalWrite(M2B, LOW); digitalWrite(M2C, HIGH); digitalWrite(M2D, HIGH); delay(t);}
для (int x=0; x<180;x++){
//Motor2 CW
digitalWrite(M2A, LOW); digitalWrite(M2B, LOW); digitalWrite(M2C, HIGH); digitalWrite(M2D, HIGH); delay(t);
digitalWrite(M2A, LOW); digitalWrite(M2B, HIGH); digitalWrite(M2C, HIGH); digitalWrite(M2D, LOW); delay(t);
digitalWrite(M2A, HIGH); digitalWrite(M2B, HIGH); digitalWrite(M2C, LOW); digitalWrite(M2D, LOW); delay(t);
digitalWrite(M2A, HIGH); digitalWrite(M2B, LOW); digitalWrite(M2C, LOW); digitalWrite(M2D, HIGH); delay(t);}
Задержка (500);
)
モデルソース
