Потребовался 3Д принтер, несколько часов «фигнистрадания» и моих кривых рук с извращенной фантазией. И так что да и как:
На багажной двери есть вот такая заглушка.
А вот это я накалякал на компе:
И распечатал:
Сильно не пинайте, хотя есть за что, но микроконтроллер совершенно не нужен если у вас есть кнопка, фиксирующаяся во включенном состоянии, та, с желтым колпачком, увы у меня такой не нашлось, да и подробнее об этом ниже.
Алгоритм работы кнопки простейший до посинения, нет не синий я, пока нет. Один раз нажал включилась, второй – выключилась, третий – будет работать стробоскопом, ну типа если вдруг вы открыли дверцу в аварийной ситуации, мало ли кто сзади не заметит такой большой холодильник…
Все подключается по следующей схеме:
ЛЕД лампочки и линзы выкрутил у имеющихся в наличии двух китайских дешевых фонарей, в которых мне послали литиевые батарейки, что бы на таможне не докапывались, ибо батарейки отдельно у нас запрещают перевозить почтой – дебилизм! Вот и пригодились бездельники. .
По поводу использования микроконтроллера несколько слов, как и обещал:
Я его использовал чисто ради забавы, если вам не нужно иметь возможность программировать разные режимы, то можно обойтись и без него запитав светодиоды напрямую кнопкой, но она должна выдержать токи 0.5 ампера МИНИМУМ и уметь зависать в нажатом состоянии. Если нет такой мощной кнопки, переключателя, тогда можно оставить ключи транзисторные и через них активировать, подав на их базу плюс, хотя если уже будете пользоваться моими наработками, там без вариантов, если конечно у вас тоже есть желание повторить мои страдания разной ненужной фигней ))
Перед сборкой проверяем работу устройства загрузив простенький скетч:
/*
* This is sketch for my reardoor light for LC200
* Version 1.0
* 17Mar2021
*/
#define pushButton 4
#define LED1 5
#define LED2 6
#define strobeSpeed 100
int ledState1 = LOW;
unsigned long previousMillis = 0;
byte buttonState = 0;
boolean trig1 = 0;
void setup() {
Serial.begin(57600);
pinMode (pushButton, INPUT_PULLUP);
pinMode (LED1, OUTPUT);
pinMode (LED2, OUTPUT);
}
void loop() {
if(digitalRead(pushButton) == HIGH){
trig1 = 0;
}
if(digitalRead(pushButton) == LOW && trig1 == 0){
buttonState ++ ;
if(buttonState == 4){
buttonState = 0;
}
Serial.println("ButtonState: " + String(buttonState));
trig1 = 1;
delay(500);
}
if(buttonState == 1){
digitalWrite(LED1, HIGH);
}
else if (buttonState == 2){
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
}
else if(buttonState == 3){
strobe(1);
}
else{
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
}
}
void strobe(byte k){
if(k == 1){
unsigned long currentMillis = millis();
if (currentMillis — previousMillis >= strobeSpeed) {
previousMillis = currentMillis;
if (ledState1 == LOW) {
ledState1 = HIGH;
} else {
ledState1 = LOW;
}
digitalWrite(LED1, ledState1);
digitalWrite(LED2, ledState1);
}
}
else{
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
}
}
Получилось както так:
Видео проектирования, сборки, монтажа и работы как всегда на моем канале, извините, я не многословный, просто наслаждайтесь музыкой…
https://youtube.com/v/f597tuLGzX4В работе:
https://youtube.com/v/XX9ss6VkdekУдачи с экспериментами, всем добра!