📊 نوار LED دهتایی (LED Bar Graph (10 segments))
| اسم انگلیسی | LED Bar Graph (10 segments) |
|---|---|
| در ووکوی (Wokwi) | wokwi-led-bar-graph |
| دسته | 💡 LED و نمایشگر |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
نوار LED دهتایی (LED Bar Graph) ده LED مستطیلی باریک است که کنار هم در یک بدنهی ۲۰ پایه قرار گرفتهاند؛ هر LED آند و کاتد خودش را دارد و مستقل روشن میشود. با روشن کردن ۰ تا ۱۰ خانه میتوانی یک «سطح» را بدون نمایشگر عددی نشان بدهی: مقدار پتانسیومتر، بلندی صدا، شارژ باتری یا فاصلهی ماشین از دیوار. در این صفحه نوار را در ووکوی میچینیم و یک نمایشگر سطح با «نقطهی پیک» میسازیم؛ همان نقطهای که در اکولایزر ضبطصوتها آرام پایین میافتد.
نوار LED در ووکوی (Wokwi)
شناسهی این قطعه در ووکوی wokwi-led-bar-graph است. پایههایش A1 تا A10 (آندها) و C1 تا C10 (کاتدها) هستند و هر جفت A و C همشماره یک LED است. تکهی زیر دو خانهی اول را با مقاومت و یک wokwi-potentiometer روی A0 نشان میدهد؛ برای A3 تا A10 همین الگو را با پینهای 4 تا 11 و هشت مقاومت دیگر تکرار کن.
{
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
{ "type": "wokwi-led-bar-graph", "id": "bar1", "top": -150, "left": 120, "attrs": {} },
{ "type": "wokwi-resistor", "id": "r1", "top": -60, "left": 100, "attrs": { "value": "220" } },
{ "type": "wokwi-resistor", "id": "r2", "top": -45, "left": 100, "attrs": { "value": "220" } },
{ "type": "wokwi-potentiometer", "id": "pot1", "top": -150, "left": 300, "attrs": {} }
],
"connections": [
[ "uno:2", "r1:1", "green", [] ],
[ "r1:2", "bar1:A1", "green", [] ],
[ "bar1:C1", "uno:GND.1", "black", [] ],
[ "uno:3", "r2:1", "green", [] ],
[ "r2:2", "bar1:A2", "green", [] ],
[ "bar1:C2", "uno:GND.1", "black", [] ],
[ "pot1:VCC", "uno:5V", "red", [] ],
[ "pot1:SIG", "uno:A0", "orange", [] ],
[ "pot1:GND", "uno:GND.1", "black", [] ]
]
}
| پایه در ووکوی | وصل به |
|---|---|
bar1:A1 تا bar1:A10 | پینهای 2 تا 11، هر کدام از راه یک wokwi-resistor |
bar1:C1 تا bar1:C10 | uno:GND.1 |
pot1:SIG | uno:A0 |
pot1:VCC و pot1:GND | uno:5V و uno:GND.1 |
ووکوی LED را نمیسوزاند، پس مدار بدون مقاومت هم روشن میشود؛ ولی مقاومتها را بگذار تا همین مدار روی بردبورد واقعی هم سالم بماند. در تینکرکد فارسی هم نوار LED رایگان است و مدار آمادهی نوار LED آن را بدون کد و فقط با باتری نشان میدهد.
سیمکشی با آردوینو
روی بدنهی نوار معمولاً یک گوشه پخ خورده یا نوشتهای چاپ شده که طرف آندها را نشان میدهد. اگر بعد از سیمکشی هیچ خانهای روشن نشد، احتمالاً نوار را برعکس گذاشتهای؛ آن را ۱۸۰ درجه بچرخان.
| پایهی قطعه | وصل به |
|---|---|
| آندهای ۱ تا ۱۰ | پینهای 2 تا 11، هر کدام با یک مقاومت ۲۲۰ یا ۳۳۰ اهم جدا |
| کاتدهای ۱ تا ۱۰ | GND |
| پایهی وسط پتانسیومتر | A0 |
| دو پایهی کناری پتانسیومتر | 5V و GND |
مقدار مقاومت هر خانه را با ماشینحساب مقاومت LED حساب کن.
کد نمونه
عدد پتانسیومتر به ۰ تا ۱۰ خانه تبدیل میشود. هر وقت سطح بالا برود، بالاترین نقطه بهعنوان «پیک» ذخیره میشود و بعد از مکثی کوتاه، خانهبهخانه پایین میآید. پتانسیومتر را سریع بالا ببر و رها کن تا افتادن نقطه را ببینی.
// LED bar graph on pins 2..11: level meter with a falling peak dot.
const int PINS[10] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
int peak = 0;
unsigned long peakTime = 0;
void setup() {
for (int i = 0; i < 10; i++) pinMode(PINS[i], OUTPUT);
}
void loop() {
int level = map(analogRead(A0), 0, 1023, 0, 10); // 0..10 segments lit
if (level >= peak) { // a new peak: remember it
peak = level;
peakTime = millis();
} else if (peak > 0 && millis() - peakTime > 800) {
peak--; // let the peak dot fall one step
peakTime = millis() - 650; // next step in 150 ms
}
for (int i = 0; i < 10; i++) {
bool on = (i < level) || (i == peak - 1); // bar + peak dot
digitalWrite(PINS[i], on ? HIGH : LOW);
}
delay(10);
}
اگر بهجای نوار پر فقط یک نقطهی متحرک میخواهی (Dot Mode)، شرط i < level را حذف کن تا فقط خانهی پیک روشن بماند.
اشتباههای رایج
- یک مقاومت مشترک برای همه: وقتی خانههای بیشتری روشن شوند، جریان بین آنها تقسیم میشود و کل نوار کمنور میشود. هر خانه مقاومت خودش را میخواهد.
- جریان کل: ده خانه با هر کدام حدود ۱۵ میلیآمپر یعنی ۱۵۰ میلیآمپر، و تراشهی اونو در مجموع حدود ۲۰۰ میلیآمپر را تحمل میکند. اگر روی پینهای دیگر هم بار داری، مقاومت ۳۳۰ یا ۴۷۰ اهم بگذار.
- کم آمدن پین: ده پین برای یک نوار زیاد است. با یک شیفت رجیستر 74HC595 سه پین هشت خانه را میراند و دو تا از آنها پشت سر هم، هر ده خانه را.
- ترتیب اشتباه در آرایه: اگر نوار از وسط شروع به پر شدن کرد، ترتیب عددهای آرایهی
PINSبا سیمکشیات یکی نیست.
آموزشهای مرتبط
- ۴۰ مدار آردوینو برای ووکوی
- مدارهای پیکو، از جمله نشانگر سطح با نوار LED
- پتانسیومتر در ووکوی
- فاصلهسنج اولتراسونیک؛ فاصله را روی نوار نشان بده
سؤالهای رایج
نوار LED دهتایی چند مقاومت میخواهد؟
ده تا؛ برای هر LED یک مقاومت جدا، معمولاً ۲۲۰ یا ۳۳۰ اهم. یک مقاومت مشترک باعث میشود با روشن شدن خانههای بیشتر، نور همه کم شود.
اسم نوار LED در ووکوی چیست؟
wokwi-led-bar-graph. آندهایش A1 تا A10 و کاتدهایش C1 تا C10 نام دارند و هر جفت همشماره یک LED است.
چطور با پین کمتر نوار LED را روشن کنم؟
با شیفت رجیستر 74HC595 میشود با سه پین آردوینو هشت خانه را کنترل کرد؛ دو شیفت رجیستر پشت سر هم برای هر ده خانه کافی است.