рдХреНрд░рд┐рд╕рдорд╕ рдХреЗ рдкреЗрдбрд╝ рдкрд░ рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рд╕реНрдЯрд╛рд░



рдмрд╛рд▓рд╡рд╛рдбрд╝реА рдореЗрдВ рдирдП рд╕рд╛рд▓ рдХреА рдкреВрд░реНрд╡ рд╕рдВрдзреНрдпрд╛ рдкрд░ рдХреНрд░рд┐рд╕рдорд╕ рдЯреНрд░реА рдЦрд┐рд▓реМрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред рдореИрдВрдиреЗ рд╢рд┐рд▓реНрдк рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рддрдХрдиреАрдХреА рднрд╛рдЧ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдФрд░ рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдФрд░ рдмрдЪреНрдЪреЗ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рд╡рд╛рд▓рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЖрд╕рд╛рди рддрд░реАрдХреЛрдВ рдХреА рддрд▓рд╛рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рддрдХрдиреАрдХреА рдЦрд┐рд▓реМрдирд╛ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдЧреЗрдВрдж рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдЖрдЧ рдХреЗ рдЧреЛрд▓реЗ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреИрд╕реЗ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛ рдХрд┐ рдПрдХ рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░ рдФрд░ рдПрдбреНрд░реЗрд╕ рдПрд▓рдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдорд┐рдВрдЧ рд╕реНрдЯрд╛рд░ рдмрдирд╛рдиреЗ рдХрд╛ рддреБрд░рдВрдд рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдкреНрд░рдпреБрдХреНрдд рд╕рд╛рдордЧреНрд░реА:

  1. рдЕрдВрдд рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рд▓рд┐рдП Plexiglass
  2. 28BYJ-48 рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░
  3. ULN2003 рдЪрд┐рдк рдкрд░ рдбреНрд░рд╛рдЗрд╡рд░
  4. рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ ATTINY85
  5. рдПрд▓рдИрдбреА рдкрдЯреНрдЯреА WS2812

рдпрджрд┐ рдЖрдк рдЕрдВрдд рдкреНрд░рдХрд╛рд╢ рдХреЗ рд▓рд┐рдП plexiglass рдХреЗ рдХрд┐рдирд╛рд░реЗ рдХреЛ рд░реЛрд╢рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рди рдХреЗрд╡рд▓ рдХрд┐рдирд╛рд░реЛрдВ, рдмрд▓реНрдХрд┐ рд╡рд┐рдорд╛рди рдЦреБрдж рднреА рдЪрдордХ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ plexiglass рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреА рд╡рд┐рд╡рд┐рдзрддрд╛ рдХреЗ рдХрд╛рд░рдг, рдЕрдВрджрд░ рдХреА рд░реЛрд╢рдиреА рдмрд╛рд░-рдмрд╛рд░ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╡рд┐рдорд╛рди рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдП 4 рд╢реАрдЯ рдкрд░ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдФрд░ рд╕реНрдЯрд╛рд░ рдХреЗ 2 рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ред

рдЫрд╡рд┐



рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░ рдкрд░ рдХреЛрд╢рд┐рд╢ рдХреА, рд░реЛрдЯреЗрд╢рди рдХрд╛ рдПрдХ рдХреЗрдВрджреНрд░ рдкрд╛рдпрд╛ рдФрд░ рдПрдХ рдЧреЛрд▓ рдЫреЗрдж рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдореИрдВрдиреЗ 5 рдПрд▓рдИрдбреА рдХреЗ рд╕рд╛рде рдЯреЗрдк WS2812 рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЪрд┐рдкрдХрд╛рдпрд╛ред рдореИрдВрдиреЗ рдЗрдВрдЬрди рд╢рд╛рдлреНрдЯ рдкрд░ рджреВрд╕рд░рд╛ рднрд╛рдЧ рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдкреВрд░реА рдЪреАрдЬрд╝ рдХреЛ рдЕрд░реБрдбрд┐рдиреЛ рд╕реЗ рдЬреЛрдбрд╝рд╛ред



рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╕реНрдЯреЗрдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ рдмрдЧ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЖрдкрдХреЛ рд╡рд╛рдорд╛рд╡рд░реНрдд рдШреВрдордиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЯрд╛рдЗрдиреАрд╕реНрдЯреЗрдкрд░_28BYJ_48 рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдПрд▓ рдИ рдбреА рдХреЗ рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ Adafruit_NeoPixel рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рдЯреНрд░рд╛рдВрд╕рдлрд╛рд░реНрдорд░ рд╕реНрдЯрд╛рд░ рд╕реНрдХреЗрдЪ
// рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
// github.com/Stan-Reifel/TinyStepper_28BYJ_48
//
//
// рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдЬрд░реВрд░реА рд╣реИ рдХрд┐ рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░ рдХреЛ Arduino рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП
// ULN2003 рдбреНрд░рд╛рдЗрд╡рд░ рдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред

// *************************************** ***********************

#include <TinyStepper_28BYJ_48.h>
#include <Adafruit_NeoPixel.h>

// NEO рдкрд┐рдХреНрд╕реЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
# рдбреЗрдлрд┐рди рдкрд┐рди 0
#define LEDS_COUNT 5
# рд░реЗрдбрд┐рдл рд╕реНрдЯреНрд░рд┐рдкред рд░рдВрдЧ (255, 0, 0)
#define GREEN рдХреА рдкрдЯреНрдЯреАред рд░рдВрдЧ (0, 255, 0)
#define BLUE рд╕реНрдЯреНрд░рд┐рдкред рд░рдВрдЧ (0, 0, 255)
#define рд╕рдлреЗрдж рдкрдЯреНрдЯреАред рд░рдВрдЧ (255, 255, 255)

// рдкрд┐рди рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рдХрд┐рд╕реА рднреА рдбрд┐рдЬрд┐рдЯрд▓ рдкрд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
#define MOTOR_IN1_PIN рез
#define MOTOR_IN2_PIN 2
#define MOTOR_IN3_PIN 3
#define MOTOR_IN4_PIN 4

// рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ
TinyStepper_28BYJ_48 рд╕реНрдЯреЗрдкрд░;
Adafruit_NeoPixel рд╕реНрдЯреНрд░рд┐рдк = Adafruit_NeoPixel (LEDS_COUNT, PIN, NEO_GRB + NEO_KHZ800);

рд╢реВрдиреНрдп рд╕реЗрдЯрдЕрдк () {
// рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░ рдХреЛ рдЙрд╕рдХреЗ IO рдкрд┐рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
stepper.connectToPins (MOTOR_IN1_PIN, MOTOR_IN2_PIN, MOTOR_IN3_PIN, MOTOR_IN4_PIN);
// рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░ рдХреЗ рд▓рд┐рдП рдЧрддрд┐ рдФрд░ рддреНрд╡рд░рдг рджрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
stepper.setSpeedInStepsPerSecond (256);
stepper.setAccelerationInStepsPerSecondPerSecond (512);

рдкрдЯреНрдЯреАредрдмреАрдЧрд┐рди ();
рдкрдЯреНрдЯреАредрд╢реЛ (); // 'рдмрдВрдж' рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдкрд┐рдХреНрд╕рд▓ рд╢реБрд░реВ
}

рд╢реВрдиреНрдп рд▓реВрдк () {
// рдореЛрдЯрд░ рдХреЛ рдЖрдЧреЗ рдХреА рдУрд░ рдПрдХ рдЪрдХреНрдХрд░ рдореЗрдВ рдШреБрдорд╛рдПрдВ
stepper.moveRelativeInSteps (410);
рдХреЗ рд▓рд┐рдП (рдмрд╛рдЗрдЯ i = 0; рдореИрдВ <20; рдореИрдВ ++) {
fadeInOut (0xff, 0x00, 0x00); // рд▓рд╛рд▓
}

// рдкреАрдЫреЗ 1 рдЪрдХреНрдХрд░ рдШреБрдорд╛рдПрдВ, рдлрд┐рд░ 1 рд╕реЗрдХрдВрдб рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ
stepper.moveRelativeInSteps (-410);
рдХреЗ рд▓рд┐рдП (рдмрд╛рдЗрдЯ i = 0; рдореИрдВ <20; рдореИрдВ ++) {
fadeInOut (0x00, 0x00, 0xff); // рдиреАрд▓рд╛
}
}

рд╢реВрдиреНрдп fadeInOut (рдмрд╛рдЗрдЯ рд░реЗрдб, рдмрд╛рдЗрдЯ рдЧреНрд░реАрди, рдмрд╛рдЗрдЯ рдмреНрд▓реВ) {
рдлреНрд▓реЛрдЯ рдЖрд░, рдЬреА, рдмреА;

for (int k = 0; k <256; k = k + 1) {
рдЖрд░ = (рдХреЗ / 256.0) * рд▓рд╛рд▓;
g = (k / 256.0) * рд╣рд░рд╛;
b = (k / 256.0) * рдиреАрд▓рд╛;
setAll (рдЖрд░, рдЬреА, рдмреА);
рдкрдЯреНрдЯреАредрд╢реЛ ();
рджреЗрд░реА (5);
}

for (int k = 255; k> = 0; k = k-2) {
рдЖрд░ = (рдХреЗ / 256.0) * рд▓рд╛рд▓;
g = (k / 256.0) * рд╣рд░рд╛;
b = (k / 256.0) * рдиреАрд▓рд╛;
setAll (рдЖрд░, рдЬреА, рдмреА);
рдкрдЯреНрдЯреАредрд╢реЛ ();
рджреЗрд░реА (5);
}
}

рд╢реВрдиреНрдп setAll (рдмрд╛рдЗрдЯ рд░реЗрдб, рдмрд╛рдЗрдЯ рдЧреНрд░реАрди, рдмрд╛рдЗрдЯ рдмреНрд▓реВ) {
for (int i = 0; рдореИрдВ <LEDS_COUNT? i ++) {
strip.setPixelColor (i, strip.Color (рд▓рд╛рд▓, рд╣рд░рд╛, рдиреАрд▓рд╛));
}
рдкрдЯреНрдЯреАредрд╢реЛ ();
}


рдпрд╣ рдЬреАрд╡рд┐рдд рд╣реИ !!!

рдЕрдм рд╕рдм рдХреБрдЫ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ Arduino рдХреЗ рдмрдЬрд╛рдп ATTINY85 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред Create.arduino.cc рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ Arduino рд╕реНрдХреЗрдЪ рдХреЗ рд╕рд╛рде ATTINY85 рдХреЛ рд╕реАрд╡реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред 8 рдкреИрд░реЛрдВ рдореЗрдВ рд╕реЗ, рдореИрдВрдиреЗ рдПрдХ рд╕реНрдЯреЗрдкрд░ рдореЛрдЯрд░ рдХреЗ рд▓рд┐рдП 7, 4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, 1 рдПрд▓рдИрдбреА рдХреЗ рд▓рд┐рдП, 2 рдкрд╛рд╡рд░ рдХреЗ рд▓рд┐рдП, рдЖрд░рдИрдПрд╕рдИрдЯреА рдореБрдХреНрдд рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдПред



рдХреНрд░рд┐рд╕рдорд╕ рдХреЗ рдкреЗрдбрд╝ рдХреЗ рдореБрдХреБрдЯ рдкрд░ рдмрдврд╝рддреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╡рд╛рд░ рд╕рдВрднрд╛рд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрд▓рд╛ рдЧрдпрд╛ред



рд╕рдЬрд╛рд╡рдЯреА рдХрд╛рдо рдХреЗ рдмрд╛рдж, рд╕реНрдЯрд╛рд░ рдмрд╣реБрдд рд╣реА рд╕реБрдВрджрд░ рд▓рдЧрдиреЗ рд▓рдЧрд╛ред рд╣реИрдВрдбрд▓ рдХреЛ рд▓рд╛рд▓ рд╕рд╛рдЯрди рд░рд┐рдмрди рдореЗрдВ рд▓рдкреЗрдЯрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ plexiglass рд╕реНрдкрд╛рд░реНрдХрд▓ рдХреЗ рд╕рд╛рде рдкрд╛рд░рджрд░реНрд╢реА рд╡рд╛рд░реНрдирд┐рд╢ рдХреЗ рд╕рд╛рде рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕ рд╕реЗ рдЪрдордХ рдкреНрд░рднрд╛рд╡ рдмрд╣реБрдд рдмрдврд╝рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред



рд╕рднреА рдЖрдЧрд╛рдореА 2020, рдирдП рд╕рд╛рд▓ рдХреЗ рдореВрдб рдФрд░ рд╕рд░рд▓рддрд╛ рдХреЗ рд╕рд╛рде!

Source: https://habr.com/ru/post/hi480058/


All Articles