Ще в далекому 1984 році я купив дуже сучасний програвач вінілових дисків, який був на той час дуже сучасним і дуже дорогим для роботи в СРСР.
На той час це було круто.
Але час минув, і я підкреслив момент, який забув про це, але #COVID відкрився протягом багатьох днів і слухав старі колекції.
Але це диво було СРСР не включено ...
Віртуальна здатність знизила його, коли під час огляду електроніки того часу:
Для початку "радянська" електроніка була відкінута.
Є 3-фазний двигун, електромагнітний підвійник тонарів, вінтажний вімікач напруги 220 В і датчики управління зі старовинними свідомими фарами.
Я був розроблений спеціальним щитом, керованим ARDUINO NANO.
Я підтримую ланцюг підсилювача у Elliott Sound
Розроблена друкована плата (розмір 100x100 мм) залишається робити так:
ескіз ARDUINO-nano (вибачте, зараз з українськими коментарями).
#include <TimerOne.h>
#define MuteALL 13 // Блок сигналу катріджа (головки)
// #define END_DISC 12 // Вхід з датчика автостопу
// 11 // Резерв
#define Stroboscope 10 // Меандр 50 Гц для стробоскопу
#define TONARM_UP 9 // Вихід на силовий ключ мікроліфту тонарму
#define PWM1 8 // Вихід на силовий ключ фаза1
#define PWM2 7 // Вихід на силовий ключ фаза2
#define PWM3 6 // Вихід на силовий ключ фаза3
#define SET_45 5 // Команда сенсору "Вкл.45"
#define STOP 4 // Команда сенсору "Зупинити і підняти тонарм"
#define SET_33 3 // Команда сенсору "Вкл.33"
#define SET_UP 2 // Команда сенсору "UP Підняти тонарм"
#define SET_DOWN 1 // Команда сенсору "DOWN Опустити тонарм"
// # визначити 0 // Резерв
#define LED_33 19 // AD5 // Вихід на світдіод 33
#define LED_STOP 18 // AD4 // Вихід на світдіод STOP
#define LED_45 17 // AD3 // Вихід на світдіод 45
#define LED_DOWN 16 // AD2 // Вихід на світдіод DOWN
#define LED_UP 15 // AD1 // Вихід на світдіод UP
// # визначити Tuning_Res 14 // AD0 // Вхід резистора точної підстройки
// ************************************************** ** ** *****************************
неподписаний довгий Cycle_Start;
неподписаний довгий Current_Time;
int Count_PWM = 0;
int SET_33_Value;
int SET_45_Value;
int SET_UP_Value;
int SET_DOWN_Value;
int STOP_Value;
int END_DISC_Value;
int Tuning = 0;
int Tuning_New = 0;
int ADJ = 0; // Аналоговий вхід для зменшення потенціометра
довгий Faza_Time = 0;
// ************************************************** ** ** *****************************
встановлення недійсності ()
{
// digitalWrite (resetPin, HIGH);
// затримка (200);
// pinMode (resetPin, OUTPUT);
// затримка (1000);
analogReference (DEFAULT);
pinMode (PWM1, OUTPUT);
pinMode (PWM2, OUTPUT);
pinMode (PWM3, OUTPUT);
pinMode (SET_33, INPUT);
pinMode (SET_45, INPUT);
pinMode (SET_UP, INPUT);
pinMode (SET_DOWN, INPUT);
pinMode (STOP, INPUT);
// pinMode (END_DISC, INPUT);
pinMode (LED_33, вихідний);
pinMode (LED_45, вихідний);
pinMode (LED_UP, OUTPUT);
pinMode (LED_DOWN, OUTPUT);
pinMode (LED_STOP, OUTPUT);
pinMode (TONARM_UP, OUTPUT);
digitalWrite (LED_33, HIGH);
digitalWrite (LED_45, HIGH);
digitalWrite (LED_UP, HIGH);
digitalWrite (LED_DOWN, LOW);
digitalWrite (LED_STOP, LOW);
digitalWrite (TONARM_UP, HIGH);
digitalWrite (PWM1, LOW);
digitalWrite (PWM2, LOW);
digitalWrite (PWM3, LOW);
Count_PWM = 0;
Timer1.attachInterrupt (PWM_Control);
тон (Стробоскоп, 50);
noTone (Стробоскоп);
}
// Закінчення налаштування
недійсна PWM_Control ()
{
так (Count_PWM == 0)
{
digitalWrite (PWM1, LOW);
digitalWrite (PWM2, LOW);
digitalWrite (PWM3, LOW);
}
ще
{
if (Tuning_New! = Налаштування)
{
Налаштування = Tuning_New;
Timer1.setPeriod (Faza_Time + (Налаштування - 64) * 8); // Длительность одной фазы в микросекундах
}
Count_PWM = Count_PWM +1;
так (Count_PWM == 4) {Count_PWM = 1;}
так (Count_PWM == 1)
{
digitalWrite (PWM1, HIGH);
digitalWrite (PWM2, LOW);
digitalWrite (PWM3, LOW);
}
так (Count_PWM == 2)
{
digitalWrite (PWM1, LOW);
digitalWrite (PWM2, HIGH);
digitalWrite (PWM3, LOW);
}
так (Count_PWM == 3)
{
digitalWrite (PWM1, LOW);
digitalWrite (PWM2, LOW);
digitalWrite (PWM3, HIGH);
}
}
} // END PWM_Control
void Tonarm_Vira () // Процедура підъема тонарма
{
digitalWrite (TONARM_UP, HIGH);
digitalWrite (LED_UP, HIGH);
digitalWrite (LED_DOWN, LOW);
}
void Tonarm_Maina () // Процедура випуску тонарма
{
digitalWrite (LED_UP, LOW);
digitalWrite (LED_DOWN, HIGH);
digitalWrite (TONARM_UP, LOW);
}
void smooth_Start ()
{
digitalWrite (PWM1, HIGH);
digitalWrite (PWM2, LOW);
digitalWrite (PWM3, LOW);
затримка (20);
digitalWrite (PWM1, LOW);
digitalWrite (PWM2, HIGH);
digitalWrite (PWM3, LOW);
затримка (25);
digitalWrite (PWM1, LOW);
digitalWrite (PWM2, LOW);
digitalWrite (PWM3, HIGH);
затримка (30);
digitalWrite (PWM1, HIGH);
digitalWrite (PWM2, LOW);
digitalWrite (PWM3, LOW);
затримка (35);
digitalWrite (PWM1, LOW);
digitalWrite (PWM2, HIGH);
digitalWrite (PWM3, LOW);
затримка (40);
digitalWrite (PWM1, LOW);
digitalWrite (PWM2, LOW);
digitalWrite (PWM3, HIGH);
}
void loop () {
// ************************************************** ** ** *********
SET_33_Value = digitalRead (SET_33);
SET_45_Value = digitalRead (SET_45);
SET_UP_Value = digitalRead (SET_UP);
SET_DOWN_Value = digitalRead (SET_DOWN);
STOP_Value = digitalRead (STOP);
// END_DISC_Value = digitalRead (END_DISC);
Tuning_New = analogRead (A0) / 8;
if (SET_33_Value == HIGH) {digitalWrite (LED_STOP, HIGH);
digitalWrite (LED_33, LOW);
digitalWrite (LED_45, HIGH);
Count_PWM = 1;
Faza_Time = 75008; // 60-ті / 8 пол. / 3 крок / 33,33 об / хв
Timer1.initialize (Faza_Time);
Timer1.setPeriod (Faza_Time);
Timer1.start ();
тон (Стробоскоп, 25);
// noTone (Стробоскоп);
smooth_Start ();
}
if (SET_45_Value == HIGH) {digitalWrite (LED_STOP, HIGH);
digitalWrite (LED_45, LOW);
digitalWrite (LED_33, HIGH);
Count_PWM = 1;
Faza_Time = 55420; // = 60-ті / 8 пол. / 3 фаз. / 45,11 об / хв
Timer1.initialize (Faza_Time);
Timer1.setPeriod (Faza_Time);
Timer1.start ();
тон (Стробоскоп, 25);
// noTone (Стробоскоп);
smooth_Start ();
}
так ((STOP_Value == HIGH) || (END_DISC_Value == HIGH))
{
Timer1.stop ();
Count_PWM = 0;
Faza_Time = 0;
Tonarm_Vira ();
digitalWrite (PWM1, LOW);
digitalWrite (PWM2, LOW);
digitalWrite (PWM3, LOW);
digitalWrite (LED_STOP, LOW);
digitalWrite (LED_33, HIGH);
digitalWrite (LED_45, HIGH);
// тон (Стробоскоп, 50);
noTone (Стробоскоп);
}
залишилося (SET_UP_Value == ВИСОКИЙ) {
Tonarm_Vira ();
}
зрозуміло (SET_DOWN_Value == ВИСОКИЙ) {
Tonarm_Maina ();
}
// Крутимо двигуна
} // Кінцевий ескіз
Завтра я очікую друковану планку і всі необхідні деталі для складання.
Так буде цікаво.
Top Comments