نمودار اتصال آردوینو برای یک چراغ راهنما در حال اجرا. چراغ های راهنما پویا - ما چراغ های روشنایی را از کیت KIT می سازیم. ویدئویی از نحوه عملکرد چراغ جلو

همه کسانی که یک ماشین کم و بیش مدرن دیده اند و نه برای بار دوم، و اگر موضوع رانندگی هم بوده، مدت هاست که برای خود یکی از آنها را یادداشت کرده اند. گزینه های مفید... مردم به آن چراغ راهنما تنبل یا چراغ راهنما مودبانه می گویند. تمام ماهیت آن به این واقعیت خلاصه می شود که هنگام چرخش به راست یا چپ، راننده فقط یک بار اهرم چراغ راهنما را بدون تعمیر آن لمس می کند. یعنی به سادگی باعث می شود مدارهای چراغ راهنما کار کنند، اما این سوئیچ را روشن نمی کند. در نتیجه ، پس از رها شدن اهرم ، نشانگرهای جهت 3-4 بار دیگر فعال می شوند و در این زمان راننده می تواند از قبل "کسب و کار" خود را انجام دهد ، یعنی کاملاً خود را به جاده اختصاص دهد. این گزینه زمانی که مجبور به تغییر مسیر هستید بسیار مفید است. به هر حال، وقتی اهرم چراغ راهنما کاملاً درگیر است، خاموش شدن خودکاراین اتفاق نمی افتد، به دلیل زاویه ناچیز چرخش فرمان، به این معنی که برای تقلید از عملکرد باید با خود نشانگر به عقب و جلو بچرخید یا دائماً آن را با دست خود در آستانه روشن شدن حمایت کنید. نشانگر جهت و اگر چنین گزینه ای وجود داشته باشد، من فقط کمی اهرم را لمس کردم و فراموش کردم. به طور کلی، ما فکر می کنیم که اصل کار به طور کامل آشکار شده است، اما اکنون لازم به ذکر است که امکان اجرای چنین گزینه ای در دستگاه شما وجود دارد.

چراغ راهنما مودبانه در آردوینو برای کدام مدارهای الکتریکی مناسب است؟

قبل از اینکه وارد تمام مشکلات جدی در مورد تولید یک چراغ راهنما مودبانه شوید، باید بدانید که بدون تغییر برای چه نمودارهای اتصال الکتریکی مناسب است. نمودار الکتریکیدر ماشین
در اینجا ما با دو گزینه اصلی که در اصل متفاوت هستند، ارائه می شود. اولین مورد زمانی است که چراغ های راهنما هنگامی که به عنوان بار متصل می شوند روشن می شوند. یعنی روشن شدن به دلیل تعویض مدار لامپ های چراغ راهنما رخ می دهد که خود اهرم چراغ راهنما در آن قرار دارد ، این است که مدار را می بندد و پس از آن عملیات انجام می شود. در این حالت ، استفاده از گزینه ما امکان پذیر نخواهد بود ، زیرا هنگامی که اهرم مدار را با لامپ ها باز می کند ، بلافاصله امکان نشان دادن نور را غیرفعال می کنیم ، حتی اگر سیگنالی به خود اهرم برسد ، به سادگی نمی رود بیشتر
گزینه دوم مال ما است، زمانی که سیگنال های کنترلی وجود دارد و سیگنال های قدرت خروجی وجود دارد. در این صورت، به جای رله استاندارد، می توانید دقیقا مداری را نصب کنید که می خواهیم به آن توجه کنید.

ماژول برق رله ای که می توان آن را در اینترنت برای کنترل بار قدرت خریداری کرد

طرح و مدار یک چراغ راهنما تنبل (مودب) در آردوینو

بنابراین، می توان در مورد استفاده از آردوینو به عنوان یونیت سر برای چراغ های راهنمای تنبل بحث کرد، زیرا این نیز راه حل ایده آلی نیست، که دارای اشکالاتی است. به عنوان مثال، پس از روشن کردن احتراق، به منظور اطمینان از سرعت، اتصال مدارهای برق ضروری است. در عین حال، خود مهار اجزای رادیویی اضافی در اینجا اساساً بی فایده است، زیرا در این حالت می توانید به سادگی یک میکروکنترلر را برنامه ریزی کنید و فقط از آن استفاده کنید. اما این منفی نیز یک مزیت است، زیرا هر کسی که یکی داشته باشد می تواند آردوینو را برنامه ریزی کند و برای میکروکنترلرها نیز به یک برنامه نویس نیاز خواهید داشت.
نوشتن برنامه یکی از سخت ترین کارها خواهد بود. در اینجا یک مبتدی باید بیش از یک ساعت از وقت آزاد خود را صرف کند و کار الگوریتم ها را مطالعه کند، اما خوشبختانه اینترنت وجود دارد و ما هستیم. بنابراین در اینجا طرح است.

Int switchPinR=8; int switchPinL=7; int ledPinR=11; int ledPinL=12; بولی ledOn = نادرست; int i=0; int z=0; void setup() (// کد راه اندازی خود را اینجا قرار دهید تا یک بار اجرا شود: pinMode(switchPinR, INPUT)؛ pinMode(switchPinL, INPUT)؛ pinMode(ledPinR, OUTPUT)؛ pinMode(ledPinL, OUTPUT)؛ Serial.begin(9600 ) void loop() ( // کد اصلی خود را در اینجا قرار دهید تا به طور مکرر اجرا شود: //2 برچسب: if (digitalRead(switchPinR) == HIGH && digitalRead(switchPinL) == HIGH) (digitalWrite(ledPinR, HIGH) DigitalWrite(ledPinL, HIGH);<7) { ledOn = !ledOn; digitalWrite(ledPinR, ledOn); digitalWrite(ledPinL, ledOn); delay(400); i++; z++; if (digitalRead(switchPinL) == LOW && digitalRead(switchPinR) == LOW && z>=7) ( break; ) ) other (digitalWrite(ledPinR, LOW); digitalWrite(ledPinL, LOW); z=0;) //دوچرخه کردن سیگنال اضطراری if (digitalRead(switchPinR) == HIGH && DigitalRead(switchPinL) == HIGH) (goto label;) //راهنمای راست. if (digitalRead(switchPinR) == HIGH) (digitalWrite(ledPinR, HIGH)؛ i=0؛ while (i<7) { ledOn = !ledOn; digitalWrite(ledPinR, ledOn); delay(400); i++; z++; if (digitalRead(switchPinR) == LOW && z>=7) ( break; ) ) ) else (digitalWrite(ledPinR, LOW)؛ z=0; ) //علامت چرخش چپ. if (digitalRead(switchPinL) == HIGH) (digitalWrite(ledPinL, HIGH); i=0; while (i<7) { ledOn = !ledOn; digitalWrite(ledPinL, ledOn); delay(400); i++; z++; if (digitalRead(switchPinL) == LOW && z>=7) ( break; ) ) ) else (digitalWrite(ledPinL, LOW); z=0; ) ) )

به طور خلاصه، طرح دارای 2 ورودی و 2 خروجی است. در این حالت، هنگامی که یک سیگنال مثبت، یعنی سیگنال سطح بالا در ورودی (8،7) ورودی است، تعداد معینی چشمک زدن (z یا i) در خروجی مربوطه (11،12) دریافت می کنیم. خلاصه یه همچین چیزی یعنی اگر می‌خواهید چیزی در طرح در مورد تعداد چشمک‌ها و خروجی‌های ورودی تغییر دهید، به این متغیرها توجه کنید. اگر نیاز به تغییر طول چشمک زدن دارید، توجه شما باید بر روی عملکرد تاخیر متمرکز شود.
یکی دیگر از ویژگی های این برنامه خروجی آلارم تا حدودی غیرعادی است. ابتدا نشانگرهای چپ و راست پردازش می شوند، سپس چراغ های خطر روشن می شوند. این به دلیل این واقعیت است که فقط در صورتی می تواند روشن شود که ورودی در ورودی های 8 و 7 همزمان بالا باشد. و این شرط فقط در چرخه دوم برآورده می شود، زیرا فشار دادن دو دکمه به طور همزمان از نظر فیزیکی غیرممکن است. سرعت میکروکنترلر به شما این امکان را می دهد که خروجی بالا را از یک دکمه سریعتر بخوانید و تصمیم بگیرید که در نهایت، این یک شرط برای راه اندازی چراغ راهنما است و نه زنگ هشدار. اگرچه نباید نگران آن باشید، مگر اینکه تشکر کردن در جاده مشکل ساز خواهد بود.

ویژگی های اتصال چراغ راهنما تنبل (مودب) در خودرو با استفاده از آردوینو

شما نباید از پین 13 به عنوان خروجی استفاده کنید، زیرا هر بار که برق را روشن و خاموش می کنید، ممکن است نشانگرهایی که به این خروجی متصل می شوند سوسو بزنند.
هنگام انتقال از سیگنال های کنترلی به سیگنال های برق، از بلوک های مناسب خریداری شده در اینترنت یا مونتاژ شده توسط خودتان استفاده کنید. ما قبلاً در مورد چنین بلوک ها - ماژول ها صحبت کرده ایم.
هنگام دریافت سیگنال 1 از ولتاژ 12 ولت، یک مقاومت 10 کوم را در جلوی ورودی قرار دهید.

این همه دستورالعمل ساخت چراغ راهنما برای ماشین با استفاده از میکروکنترلر آردوینو است و اکنون در مورد همین موضوع در ویدیو ...


سلام به همه دست اندرکاران امروز ما به یکی از گزینه های متعدد برای استفاده از نوار LED نوع WS2812B در LED های RGB آدرس پذیر نگاه خواهیم کرد. چنین نوارهایی (و همچنین LED های WS2812B که به طور جداگانه نصب شده اند) می توانند برای روشن کردن پس زمینه "Ambilight" مانیتورها و تلویزیون های رایانه، نورپردازی پویا در ماشین، یک نقاشی، یک قاب عکس، یک آکواریوم و غیره استفاده شوند. آنها به طور گسترده ای در طراحی هر محل، به شکل نورپردازی های سال نو یا نمایش نور استفاده می شوند. استفاده از نوار LED نوع WS2812B امکان تهیه را فراهم می کند تعداد زیادیپروژه های جالب

LED WS2812B یک LED RGB است که در همان محفظه با تراشه WS2801 قرار داده شده است.


LED WS2812B خود یک عنصر SMD است که برای نصب روی سطح طراحی شده است. در داخل، LED از کریستال های نور قرمز، کریستال های نور سبز و کریستال های نور آبی تشکیل شده است که در همان محفظه قرار دارند. با استفاده از این LED می توانید طیف گسترده ای از سایه های رنگی از انتشار نور را بدست آورید.

LED RGB از طریق برد میکروکنترلر آردوینو کنترل می شود.
من از چینی ها دریافت کردم نوار LED WS2812B یک قطعه به طول 1 متر با تعداد LED - 144 قطعه است. من مدتهاست که می خواستم آن را برای آزمایش های مختلف امتحان کنم. با کمک کتابخانه‌های آردوینو - Adafruit Neopixel و Fast led، می‌توانید جلوه‌های نوری بسیار غیرعادی زیادی دریافت کنید. اما بعد تصمیم گرفتم تلاش کنم چراغ های راهنما پویابرای خودرویی به اصطلاح "سبک آئودی" من هنوز استفاده از این طرح را در عمل شروع نکرده ام (افسران پلیس راهنمایی و رانندگی ما چگونه آن را خواهند پذیرفت؟)، اما مطمئناً تأثیر آن بسیار جذاب بود.

برد Arduino Uno به عنوان کنترل کننده برای کنترل نوار LED عمل می کند.
کل فرآیند را در ویدیو تماشا کنید:


لیست ابزار و مواد.
-برد آردوینو Uno;
- برد پایین آمدن 12V\5V تا 3A؛
- مقاومت 100Kom-4pcs؛
-مقاومت 47Kom-4pcs;
- مقاومت 500 اهم - 1 قطعه;
-دکمه ها (برای شبیه سازی روشن کردن سیگنال ها) -4 عدد.
- هیئت توسعه
-پیچ گوشتی؛
بلوک آزمایشگاهیتغذیه
- آهن لحیم کاری؛
-کامبریک؛
-تستر.
- سیم های اتصال

مرحله یک مونتاژ مدار.


من مدار را با استفاده از برد برد مونتاژ کردم. مقاومت های متصل به ورودی های دیجیتال آردوینو برای تبدیل سیگنال های ورودی خودرو از 12 به 5 ولت مورد نیاز است. مقاومت 500 اهم برای محافظت از خط کنترل نوار LED WS2812B.
عکس تابلو


به عنوان مبدل از 12 ولت به 5 ولت از یک برد آماده Aliexpress استفاده کردم. از هر مبدلی با پارامترهای مناسب می توان استفاده کرد. مبدل برای منبع تغذیه پایدار آردوینو و نوار LED WS2812B مورد نیاز است.


مرحله دو برنامه نویسی آردوینو

ورودی های دیجیتال برد آردوینو شماره 3، 4 برای فعال کردن چرخش چپ و راست استفاده می شود. پایه شماره 5 – چراغ ترمز را روشن کنید، پین شماره 6 – دنده عقب را روشن کنید. پین شماره 8 سیگنال کنترل نوار WS2812B است.

در Arduino IDE، طرح (لینک بالا) را آپلود کنید. دو گزینه طرح - یکی برای جلوی ماشین، دیگری برای عقب. از هر کدام که نیاز دارید استفاده کنید. در ابتدای طرح، می توانید تعداد LED های مورد نیاز خود را تنظیم کنید. همچنین می توانید سرعت چراغ های راهنما را با توجه به خودروی خود تنظیم کنید. همچنین می توانید روشنایی LED ها را با استفاده از پارامتر strip.Color(103,31,0) تغییر دهید - دو رقم اول را از 0 به 255 تغییر دهید. یعنی می توانید کمی آزمایش کنید.

وقتی روی دکمه مورد نظرما یک سیگنال برای روشن کردن پارامتر مورد نظر ارسال می کنیم. هنگامی که مدار به درستی مونتاژ شود، معمولاً بلافاصله شروع به کار می کند.

عکس در محل کار






یک آزمایش خوب با این طراحی آخر هفته معلوم شد. جالب بود

بیایید با استفاده از مثال چراغ جلوی یک خودروی رنو کلیو، یک چراغ راهنما در حال اجرا مانند آئودی ایجاد کنیم. بیایید چراغ های راهنما و DRL را در یک دستگاه بسازیم.

آنچه برای این کار نیاز دارید: نوار LED متشکل از LED های ws2812b نانو کنترلر آردوینو(قابل استفاده در هر شکل دیگری است) خودرو شارژربرای تلفن های همراهبا خروجی USB. از آنجایی که کنترلر آردوینو به ولتاژ 5 ولت نیاز دارد، از این شارژر به عنوان مبدل ولتاژ 12 ولت به 5 ولت استفاده خواهیم کرد. تثبیت کننده ولتاژ برای 5 ولت KR142EN5V (KREN5V) یا هر آنالوگ وارداتی دیگر. 3 مقاومت 10 کیلو اهم به عنوان مقاومت کششی.

نمودار اتصال

کنترلر آردوینو باید از طریق یک مبدل 12 ولت -> 5 ولت به شبکه خودرو متصل شود تا ولتاژ مدار از روشن شدن جرقه حاصل شود. شما باید سیم مثبت را از چراغ راهنما موجود به تثبیت کننده ولتاژ KREN5V وصل کنید. این مقاله در مورد اتصال و سیستم عامل تنها یک چراغ راهنما بحث می کند تا یک چراغ راهنما دوم را ایجاد کنید، به همین ترتیب باید نوار LED دوم را به هر نوع رایگان متصل کنید خروجی دیجیتالآردوینو (مثلا 7) و همچنین طبق مثال ما کدی را برای آن در سیستم عامل اضافه کنید.

سیستم عامل کنترلر

برای کار با LED های پیکسلی به یک کتابخانه نیاز دارید . می توانید آن را به صورت زیر نصب کنید: Sketch -> Connect library -> Manage libraries. سپس نام کتابخانه Adafruit_NeoPixel.h را در منوی جستجو وارد کرده و روی دکمه نصب کلیک کنید. پس از آن، طرح را در برنامه قرار دهید و تعداد LED های موجود در کد را جایگزین کنید (از 22 دیود استفاده می کنیم):

#شامل // کتابخانه را وصل کنید
نوار Adafruit_NeoPixel = Adafruit_NeoPixel(22, 8, NEO_GRB + NEO_KHZ800);
int t,t1,t2,t3,t4,p2,p1 = 0;//متغیر زمان
void setup() (
pinMode (2، INPUT)؛
pinMode (3، INPUT)؛
pinMode (4، INPUT)؛
digitalWrite (2، LOW);
digitalWrite (3، LOW);
digitalWrite (4، LOW);

strip.begin();
strip.show();

}
حلقه خالی() (
if (digitalRead(2) == LOW) ( //اگر چراغ راهنما خاموش باشد
برای (int i = 0; i< 23; i++) {
strip.setPixelColor(i, strip.Color(255,255,255)); // R=255، G=255، B=255 - رنگ سفید LED، وقتی روشن می شود چراغ ها را روشن می کنیم.
}
strip.show();
}

if ((digitalRead(2) == HIGH) & (t == 1)) ( // بررسی کنید چراغ راهنما روشن است یا خیر
برای (int i = 0; i< 23; i++) {
strip.setPixelColor(i، strip.Color(0، 0، 0)); // تمام دیودها را خاموش کنید
}
strip.show();
برای (int k = 0; k< 3; k++){ // цикл до трех - сигнал «перестроения» , при кратковременном включении мигает 3 раза,

برای (int i = 0; i< 23; i++){

if (digitalRead(2) == HIGH) (k = 0;) // اگر در حالی که چراغ راهنما چشمک می زند سیگنال مثبت دیگری دریافت می کنیم، شمارنده را تنظیم مجدد کنید تا چراغ راهنما حداقل 3 بار دیگر چشمک بزند.
strip.setPixelColor(i, strip.Color(255, 69, 0)); // R=255، G=69، B=0 - رنگ LED

تاخیر((t4)/22);
strip.show();

}
اگر (digitalRead(2) == HIGH) (t4=t4+20;) // اگر همه دیودها به رنگ زرد روشن باشند، اما سیگنال رله همچنان در حال آمدن است، زمان رایت را افزایش می دهیم.
اگر (digitalRead(2) == LOW) (t4=t4-20;) // اگر همه دیودها به رنگ زرد روشن شوند، اما سیگنال رله همچنان در حال آمدن است، زمان رایت را افزایش می دهیم.

برای (int i = 0; i< 23; i++){

strip.setPixelColor(i، strip.Color(0، 0، 0)); // R=0، G=0، B=0 - رنگ LED

تاخیر((t3)/22);
strip.show();

}
if ((digitalRead(2) == LOW)) (t3=t3+20;)
if ((digitalRead(2) == HIGH)) (t3=t3-20;)
}

if ((digitalRead(2) == HIGH) & (t == 0)) (// بررسی کنید چراغ راهنما روشن است یا خیر

t1 = millis(); //به یاد بیاورید چه ساعتی را روشن کرده اید
برای (int i = 0; i< 22; i++) {
strip.setPixelColor(i, strip.Color(255, 69, 0)); // وقتی برای اولین بار چراغ راهنما را روشن می کنید، همه دیودها را زرد روشن کنید
}
strip.show();
while (digitalRead(2) == HIGH) ()
t2 = millis(); // به یاد داشته باشید که چراغ راهنما چه ساعتی خاموش شد
t4=t2-t1;

برای (int i = 0; i< 22; i++) {
strip.setPixelColor(i، strip.Color(0، 0، 0)); // هنگامی که سیگنال رله چرخشی ناپدید شد دیودها را خاموش کنید
}
strip.show();
در حالی که (digitalRead(2) == LOW) (
if ((millis()-t2)>2000)( break;)
}
اگر ((millis()-t2)<2000) {
t3 = millis()-t2; // زمانی که چراغ های راهنما خاموش می شوند
t = 1; // پرچم، ما می دانیم که مقدار زمان ذخیره شده است.
}
}

if (digitalRead(4) == HIGH) ( // سیگنال های ویژه
برای (int j = 0; j< 16; j++) {
برای (int i = 0; i< 22; i++) {
strip.setPixelColor(i, strip.Color(255, 0, 0)); // R=255، G=0، B=0 - رنگ LED
}
strip.show();
تاخیر (20);
برای (int i = 0; i< 22; i++){

}
strip.show();
تاخیر (20);
}

برای (int j = 0; j< 16; j++) {
برای (int i = 0; i< 22; i++) {
strip.setPixelColor(i، strip.Color(0، 0، 255)); // R=0، G=0، B=255 - رنگ LED
}
strip.show();
تاخیر (20);
برای (int i = 0; i< 22; i++){
strip.setPixelColor(i، strip.Color(0، 0، 0)); // R=0، G=0، B=0 - رنگ LED
}
strip.show();
تاخیر (20);
}
}

if (digitalRead(3) == HIGH) (//strobe
برای (int j = 0; j< 24; j++) {
برای (int i = 0; i< 22; i++) {
strip.setPixelColor(i, strip.Color(255, 255, 255)); // R=255، G=255، B=255 - رنگ LED
}
strip.show();

تاخیر (15);
برای (int i = 0; i< 22; i++){
strip.setPixelColor(i، strip.Color(0، 0، 0)); // R=0، G=0، B=0 - رنگ LED
}
strip.show();
تاخیر (15);
}
تاخیر (500);

برای کد چراغ راهنما دوم هم همین کار را انجام دهید.

ویدئویی از نحوه عملکرد چراغ جلو

من سال گذشته گفتم "Gop" - وقت پریدن است :)
یا بهتر است بازبینی وعده داده شده در مورد چراغ های راهنما را انجام دهید.
من 1 متر نوار سیاه WS2812B (144 LED) را در یک لوله سیلیکونی سفارش دادم، هنگام سفارش "Black 1m 144led IP67" را انتخاب کردم (شاید کسی رنگ سفید بستر را دوست داشته باشد، چنین انتخابی وجود دارد).

یک کلمه احتیاط

من یک نوار لحیم شده از دو قطعه نیم متری دریافت کردم. نقطه ضعف این نقطه لحیم کاری آسیب پذیر است (ممکن است تماس ها در طول زمان شکسته شوند) و افزایش فاصله بین LED ها.
قبل از خرید، این نکته را با فروشنده چک کنید.

سیم های تماسی از دو طرف به نوار لحیم شدند تا چندین قطعه را به صورت سری به هم وصل کنند، زیرا من به این نیازی نداشتم، بنابراین سیم ها را از یک طرف لحیم کردم، همه چیز را با یک درزگیر خنثی مهر و موم کردم و کمی نوار برق سیاه بیشتر پیچیدم.



به عنوان مثال با استفاده از نوار چسب شفاف دو طرفه به شیشه متصل می شود.

جزئیات نصب

سطوح را چربی زدایی کردم، ابتدا نوار چسب را به لوله چسباندم (به آن می گویم، حتی اگر سطح مقطع مستطیل شکل باشد)، مازاد برآمدگی نوار پهن تر را قطع کردم، لبه های لوله را به شکاف های بین فشار دادم. سقف و قسمت های بالایی پانل های تزئینی ستون های عقب (سیم های تماس با رابط در پشت یک پانل پنهان شده بودند)، آن را در مرکز قرار داده و شروع به فشار دادن آن به شیشه کردند و به آرامی لایه محافظ نوار را بیرون می کشند.
متأسفانه هیچ ویدیویی وجود ندارد - دست آزاد برای فیلمبرداری وجود نداشت و ماشین همه متفاوت است.
اگر چیزی نامشخص است، در نظرات بپرسید.
آزمایش در گرمای تابستان موفقیت آمیز بود - چیزی از بین نرفت یا شناور نشد.
تنها نکته منفی این است که زاویه شیشه ملایم است، LED ها بیشتر به سمت بالا می درخشند. در یک روز آفتابی دیدن آن سخت است، اما از آنجایی که این سیگنال‌ها تکراری هستند،

حالا بیایید به سراغ پر کردن الکترونیکی برویم.
من از آن استفاده کردم، اما چندی پیش آن را کشف کردم

تقریباً با همان هزینه، چیزهای بیشتری دریافت می کنیم

این طرح هنگام برنامه نویسی در Arduino IDE بدون هیچ تغییر خاصی در Wemos کار می کند و اگر یک وب سرور کوچک را پیاده سازی کنید، پس از اتصال به آن از طریق Wi-Fi، می توانید مقادیر متغیرهایی مانند زمان تاخیر را تغییر دهید. بین فلاش ها، میزان کاهش سرعت در هنگام ترمز اضطراری و غیره
در اینجا در آینده، اگر کسی علاقه مند به اجرای پروژه ای در ESP8266 باشد، می توانم نمونه ای برای تغییر تنظیمات از طریق رابط وب، ذخیره آنها در EEPROM و سپس خواندن آنها ارسال کنم.
سرور وب می تواند راه اندازی شود، به عنوان مثال، از طریق روشن شدن چراغ راهنما و فشار دادن پدال ترمز هنگام روشن شدن احتراق (در روش تنظیم، وضعیت ورودی های مربوطه را نظرسنجی کنید).

برای اجرای حالت چشمک زن در هنگام ترمز شدید، خریدم
این طرح سطح کاهش سرعت را هنگام فشار دادن پدال ترمز کنترل می کند، اگر از 0.5G تجاوز کند (کاهش سرعت شدید، اما بدون ترمز جیغ)، سپس یک حالت چشمک زن برای چند ثانیه روشن می شود تا توجه بیشتری را به خود جلب کند.
سیگنال‌های کنترلی ورودی‌های آردوینو از استاپ‌ها، چراغ‌های راهنما و معکوس از طریق عایق گالوانیکی تامین می‌شوند - اپتوکوپلرهایی با مقاومت‌های محدودکننده جریان، که در نهایت سطح LOW را در ورودی‌های آردوینو تشکیل می‌دهند (مداوماً از طریق مقاومت‌های 10 کیلو اهم به سمت مثبت کشیده می‌شوند). .
منبع تغذیه - 5 ولت از طریق مبدل کاهنده DC-DC.
کل آن را در یک ساندویچ تا کرده و در یک جعبه مناسب بسته بندی می کنیم که جهت نصب با فلش برای جهت گیری صحیح سنسور جاذبه روی آن مشخص شده است.

نمودار و عکس



مقدار اسمی مقاومت های کششی (تا مثبت) استاندارد است - 10 کیلو اهم، جریان مقاومت های اپتوکوپلر را محدود می کند - 1 کیلو اهم. اپتوکوپلرها را از بردهای قدیمی حذف کردم، دو تا PC123، دو تا PC817.


در عکس اول می توانید دو ترمینال اضافی را ببینید که من آنها را برای چراغ های راهنما ساخته ام. از آنجایی که در ماشین من وقتی اهرم ستون فرمان روشن می شود، اتصال به زمین وجود دارد، سیم ها را به بلوک اهرم و ورودی های آردوینو وصل کردم. اگر اهرم ستون فرمان علامت مثبت را تغییر داد یا سیگنال را از "+" چراغ راهنماهای چپ/راست گرفتید، سپس آنها را از طریق عایق گالوانیکی وصل کنید.



خوب، اکنون خود طرح (Arduino IDE)

#شامل #شامل //چند نظر کلی // یکی از بیرونی ترین ال ای دی ها رو خاموش کردم چون... آنها بر روی پانل های تزئینی قفسه ها //قابل مشاهده در مثال این چرخه برای (int i=1; i) منعکس شدند<143; i++) //если отключать не нужно, заменяем на for (int i=0; i<144; i++) //задний ход и аварийка у меня не используются, т.к. в первом случае яркость никакая, во втором надо подключать входы к лампам поворотников //поворотники и стоп-сигнал одновременно не включаются, чтобы это реализовать, нужно переписывать соответствующий код скетча (делить ленту на три секции, подбирать тайминги миганий, менять диапазон переменных циклов). //Дерзайте - все в ваших руках // Пин для подключения управляющего сигнала светодной ленты const int PinLS = 2; //Пины для подключения датчиков //если более удобно будет подключать контакты в другом порядке - просто поменяйте значения переменных const int buttonPinL = 3; const int buttonPinR = 4; const int buttonPinS = 6; const int buttonPinD = 5; //начальные статусы входов (подтянуты к плюсу) int buttonStateS = HIGH; int buttonStateD = HIGH; int buttonStateL = HIGH; int buttonStateR = HIGH; // пауза pause_pov1 (в миллисекундах) нужна, чтобы синхронизировать циклы "пробегания" полоски и включения лампочки поворотника // такое может быть, если используется меньше половины светодиодов // в моем случае паузы нет (pause_pov1 = 0) int pause_pov1 = 1; // этой паузой регулируем длительность состояния, когда все светодиоды выключены //я определял опытным путем - включал поворотник, засекал по отдельности время ста мыргов лампочкой и ста беганий полоски, разницу делил на 100, на полученное время увеличивал или уменьшал значение переменной (в зависимости от того, отставали или убегали вперед лампочки) int pause_pov2 = 62; // переменная для получения значения ускорения int ix; Adafruit_NeoPixel strip = Adafruit_NeoPixel(144, PinLS, NEO_GRB + NEO_KHZ800); Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345); void setup() { pinMode(buttonPinS, INPUT); pinMode(buttonPinD, INPUT); pinMode(buttonPinL, INPUT); pinMode(buttonPinR, INPUT); strip.begin(); // гасим ленту for (int i=0; i<144; i++) strip.setPixelColor(i, strip.Color(0,0,0)); strip.show(); accel.begin(); // ограничиваем измеряемый диапазон четырьмя G (этого хватит с большим запасом) accel.setRange(ADXL345_RANGE_4_G); accel.setDataRate(ADXL345_DATARATE_100_HZ); } void loop() { // СТОПЫ: если включены - высший приоритет //Чтобы сделать меняющуюся по ширине полоску в зависимости от интенсивности торможения //(уточнение - никакой светомузыки, ширина полосы после нажатия на тормоз не меняется!) //от плавного торможения до тапки в пол. //Добавляем еще одну переменную, например, ix2, //присваиваем ей значение ix с коэффициентом умножения, //заодно инвертируем и округляем до целого //ix = event.acceleration.x; //ix2 = -round(ix*10); //ограничиваем для плавного торможения в пробках //(чтобы не менялась при каждом продвижении на 5 метров) //if (ix2<10) ix2 = 0; //и для резкого торможения. //Реальный диапазон изменения переменной ix - от 0 до -5 //для максимальной ширины полосы при G равном или большем 0.5 //if (ix2 >50) ix2 = 50; //سپس چرخه های بلوک STOP را برای (int i=1; i<143; i++) на for (int i=51-ix2; i<93+ix2; i++) //Получаем минимальную ширину полоски ~30 см (для стояния в пробке) и максимальную для резкого торможения //конец комментария buttonStateS = digitalRead(buttonPinS); if (buttonStateS == LOW) { sensors_event_t event; accel.getEvent(&event); ix = event.acceleration.x; // проверка резкого торможения - мигающий режим // значение 5 - это 0,5G, минус - торможение if (ix < -5) { for (int is=0; is<15; is++) { for (int i=1; i<143; i++) strip.setPixelColor(i, strip.Color(240,0,0)); strip.show(); delay(10 + is*10); for (int i=1; i<143; i++) strip.setPixelColor(i, strip.Color(0,0,0)); strip.show(); delay(10 + is*3); buttonStateS = digitalRead(buttonPinS); if (buttonStateS == HIGH) return; } } // помигали - и хватит, включаем постоянный режим, если педаль тормоза еще нажата // или если не было резкого торможения и предыдущее условие не сработало if (buttonStateS == LOW) { for (int i=1; i<143; i++) strip.setPixelColor(i, strip.Color(200,0,0)); strip.show(); while(buttonStateS == LOW){ buttonStateS = digitalRead(buttonPinS); delay(50); } // плавно гасим for (int is=0; is<20; is++) { for (int i=1; i<143; i++) strip.setPixelColor(i, strip.Color(190 - is*10,0,0)); strip.show(); delay(10); } // СТОПЫ конец } } else // если СТОПЫ выключены { // ЗАДНИЙ ХОД: если включен - средний приоритет buttonStateD = digitalRead(buttonPinD); if (buttonStateD == LOW) { for (int i=1; i<37; i++) strip.setPixelColor(i, strip.Color(63,63,63)); for (int i=107; i<143; i++) strip.setPixelColor(i, strip.Color(63,63,63)); strip.show(); while(buttonStateD == LOW){ buttonStateD = digitalRead(buttonPinD); delay(50); } //плавно гасим for (int is=0; is<16; is++) { for (int i=1; i<37; i++) strip.setPixelColor(i, strip.Color(60 - is*4,60 - is*4,60 - is*4)); for (int i=107; i<143; i++) strip.setPixelColor(i, strip.Color(60 - is*4,60 - is*4,60 - is*4)); strip.show(); delay(10); } } buttonStateL = digitalRead(buttonPinL); buttonStateR = digitalRead(buttonPinR); // если включена аварийка if (buttonStateL == LOW && buttonStateR == LOW) { for (int il=0; il<71; il++) { strip.setPixelColor(71-il, strip.Color(63,31,0)); strip.setPixelColor(il+72, strip.Color(63,31,0)); strip.show(); delay(pause_pov1); } for (int il=0; il<71; il++) { strip.setPixelColor(71-il, strip.Color(0,0,0)); strip.setPixelColor(il+72, strip.Color(0,0,0)); strip.show(); delay(pause_pov1); } delay(pause_pov2); } // если включен ЛЕВЫЙ ПОВОРОТНИК if (buttonStateL == LOW && buttonStateR == HIGH) { for (int il=0; il<71; il++) { strip.setPixelColor(il+72, strip.Color(220,120,0)); strip.show(); delay(pause_pov1); } for (int il=0; il<71; il++) { strip.setPixelColor(il+72, strip.Color(0,0,0)); strip.show(); delay(pause_pov1); } delay(pause_pov2); } // если включен ПРАВЫЙ ПОВОРОТНИК if (buttonStateL == HIGH && buttonStateR == LOW) { for (int il=0; il<71; il++) { strip.setPixelColor(71-il, strip.Color(220,120,0)); strip.show(); delay(pause_pov1); } for (int il=0; il<71; il++) { strip.setPixelColor(71-il, strip.Color(0,0,0)); strip.show(); delay(pause_pov1); } delay(pause_pov2); } //правый поворотник конец } //конец условия else Стоп // задержка для следующего опроса датчиков delay(10); }

من سعی کردم تا حد امکان در مورد آن نظر بدهم، اما اگر سؤالی وجود داشت، سعی می کنم نظرات را اضافه کنم (به همین دلیل آن را در متن بررسی قرار می دهم و نه به عنوان فایل پیوست). این، به هر حال، در مورد سایر نکات بررسی نیز صدق می کند - اگر سؤالات مهمی در نظرات وجود داشته باشد، آن را نیز تکمیل خواهم کرد.

و در نهایت، نمایشی از کار (برای ویدیو از یک طرح با حالت نمایشی استفاده کردم).

به روز رسانی من طرح را با حالت نمایشی به طور خاص انجام دادم تا همه چیز را در یک ویدیوی کوتاه قرار دهم.
چراغ ترمز فقط در هنگام ترمزگیری شدید چشمک می زند (این مورد در هنگام ترمز آهسته مورد بحث قرار گرفت و هنگام ایستادن در ترافیک، به سادگی روشن می شود، بدون اینکه باعث تحریک رانندگان شود).
روشنایی در شب بیش از حد نیست، زیرا به دلیل کج بودن شیشه، نورها بیشتر به سمت بالا هدایت می شوند تا عقب.
چراغ های استاندارد طبق معمول کار می کنند، این نوار آنها را کپی می کند.

من قصد خرید +97 را دارم به علاقه مندی ها اضافه کنید من نقد را دوست داشتم +89 +191

بسیاری از علاقه مندان به خودرو، برای بهبود ظاهر خودروی خود، "پرستو" خود را با چراغ های LED تنظیم می کنند. یکی از گزینه های تنظیم، چراغ راهنما در حال اجرا است که توجه سایر کاربران جاده را به خود جلب می کند. در این مقاله دستورالعمل هایی برای نصب و پیکربندی چراغ های راهنما با چراغ های راهنما ارائه شده است.

[پنهان کردن]

دستورالعمل مونتاژ

لامپ های ال ای دی عناصر نیمه هادی هستند که هنگام قرار گرفتن در معرض جریان الکتریکی می درخشند.عنصر اصلی در آنها سیلیکون است. بسته به ناخالصی هایی که استفاده می شود، رنگ لامپ تغییر می کند.

گالری عکس "گزینه های ممکن برای نشانگرهای جهت پویا"

ابزار و مواد

برای ساختن یک چراغ راهنما با دستان خود، به ابزارهای زیر نیاز دارید:

  • آهن لحیم کاری؛
  • برش یا انبردست جانبی؛
  • آهن لحیم کاری و مواد لحیم کاری؛
  • تستر.

شما باید لمینت فایبرگلاس را از مواد مصرفی تهیه کنید. برای ساخت یک برد مدار چاپی که عنصر نیمه هادی روی آن قرار می گیرد مورد نیاز است. ال ای دی های مورد نیاز انتخاب می شوند. بسته به ویژگی های LED ها و مقادیر جریان و ولتاژ شبکه داخلی، ویژگی های مقاومت های محافظ محاسبه می شود. با استفاده از محاسبات، اجزای باقی مانده شبکه انتخاب می شوند (نویسنده ویدیو اوگنی زادورنوف است).

توالی کار

قبل از ساختن چراغ راهنما، باید یک طرح مناسب را انتخاب کنید.

سپس بر اساس نمودار، یک برد مدار چاپی بسازید و روی آن علامت گذاری کنید تا عناصر بعدی را قرار دهید.

مجمع شامل مجموعه ای از اقدامات است:

  1. ابتدا باید با جدا کردن ترمینال منفی از باتری، برق خودرو را قطع کنید.
  2. در مرحله بعد، باید چراغ های راهنما قدیمی را بردارید و آنها را با دقت جدا کنید.
  3. لامپ های قدیمی باید باز شوند.
  4. اتصالات باید از چسب تمیز، چربی زدایی، شسته شده و اجازه داده شود تا خشک شود.
  5. به جای هر عنصر قدیمی، یک چراغ راهنما جدید نصب شده است.
  6. سپس مونتاژ و نصب چراغ ها به ترتیب معکوس انجام می شود.
  7. پس از نصب، سیم ها وصل می شوند.

در مرحله بعد، یک منبع تغذیه تثبیت شده اضافی به شبکه متصل می شود. ورودی آن از رله میانی توان دریافت می کند و خروجی به دیود متصل می شود. بهتر است آن را در پانل ابزار قرار دهید.

هنگام اتصال LED ها، باید اطمینان حاصل کنید که آند به مثبت منبع تغذیه و کاتد به منفی متصل است. اگر اتصال به درستی انجام نشود، عناصر نیمه هادی روشن نمی شوند و حتی ممکن است بسوزند.


ویژگی های نصب و پیکربندی نشانگرهای جهت در حال اجرا

می توانید به جای LED های معمولی، چراغ های راهنما پویا نصب کنید. برای انجام این کار، برد با LED ها و مقاومت های محدود کننده جریان برداشته و جدا می شود. روی تکرار کننده باید شیشه را از بدنه جدا کنید. سپس باید رفلکتور را با دقت برش دهید و آن را بردارید.

به جای رفلکتور از راه دور، یک برد SMD 5730 نصب شده است که روی آن LED های زرد رنگ قرار دارند. از آنجایی که تکرار کننده شکل منحنی دارد، تخته باید لایه لایه شود و کمی خم شود. برای اتصال کنترلر باید قطعه ای که کانکتور دارد را از برد قدیمی جدا کرده و لحیم کنید. سپس تمام اجزاء به جای خود برگردانده می شوند.

برای تنظیم زمان لامپ های LED در حال اجرا، یک سوئیچ به میکروکنترلر لحیم می شود. هنگامی که سرعت مناسب پیدا شد، جامپرها به جای سوئیچ لحیم می شوند. هنگام اتصال دو پایه به زمین، حداقل زمان بین فلاش LED 20 میلی ثانیه خواهد بود. هنگامی که مخاطبین بسته می شوند، این زمان 30 میلی ثانیه خواهد بود.


موضوع قیمت

می توانید از چراغ های روشنایی در روز یک چراغ راهنما بسازید. هزینه آنها 600 روبل است. در این حالت می توانید از LED های RGB پیکسلی به عنوان منبع نور به تعداد 7 قطعه برای هر چراغ راهنما استفاده کنید. هزینه یک عنصر 19 روبل است. برای کنترل LED ها، باید Arduino UNO را با قیمت 250 روبل خریداری کنید. بنابراین، کل هزینه 1060 روبل خواهد بود.

وای فای