สารบัญ:

RaspberryPi: หรี่ไฟ LED เข้าและออก: 4 ขั้นตอน (พร้อมรูปภาพ)
RaspberryPi: หรี่ไฟ LED เข้าและออก: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: RaspberryPi: หรี่ไฟ LED เข้าและออก: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: RaspberryPi: หรี่ไฟ LED เข้าและออก: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: เปิดปิดไฟ LED raspberry pi 2024, กรกฎาคม
Anonim
RaspberryPi: หรี่ไฟ LED เข้าและออก
RaspberryPi: หรี่ไฟ LED เข้าและออก

ขั้นตอนต่อไปนี้คือการทดลองเพื่อแสดงให้เห็นว่า LED ทำงานอย่างไร พวกเขาแสดงวิธีหรี่ไฟ LED ในอัตราที่เท่ากันและวิธีหรี่ไฟเข้าและออก

คุณจะต้องการ:

  • RaspberryPi (ฉันใช้ Pi รุ่นเก่า Pi-3 ของฉันใช้งานอยู่ แต่ Pi ใด ๆ ก็ใช้ได้)
  • เขียงหั่นขนม
  • ไฟ LED สีแดง 5 มม.
  • ตัวต้านทาน 330 Ω (ไม่สำคัญ 220-560 Ω จะทำงาน)
  • สายเชื่อมต่อ

Pi-cobbler ที่ฉันใช้จาก Adafruit ไม่จำเป็น แต่มันทำให้เขียงหั่นขนมง่ายขึ้น

WiringPi เป็นชุดของไลบรารีสำหรับการเขียนโปรแกรม RaspberryPi ใน C คำแนะนำสำหรับการดาวน์โหลด ติดตั้ง และใช้งานอยู่ที่

ในการติดตั้ง WiringPi ให้ทำตามคำแนะนำในหน้านี้:

ในการรับรายการหมายเลขพินของสายไฟPi ให้ป้อน gpio readall ที่บรรทัดคำสั่ง

ในเวอร์ชันที่ใหม่กว่าของ Raspian wirePi ได้รับการติดตั้งตามค่าเริ่มต้น

ขั้นตอนที่ 1: การปรับความกว้างพัลส์

การปรับความกว้างพัลส์
การปรับความกว้างพัลส์
การปรับความกว้างพัลส์
การปรับความกว้างพัลส์
การปรับความกว้างพัลส์
การปรับความกว้างพัลส์

ไฟ LED จะทำงานที่แรงดันไฟฟ้าเท่ากันเสมอโดยไม่คำนึงถึงความสว่าง ความสว่างถูกกำหนดโดยออสซิลเลเตอร์คลื่นสี่เหลี่ยมและระยะเวลาที่แรงดันไฟฟ้าสูงจะกำหนดความสว่าง สิ่งนี้เรียกว่าการปรับความกว้างพัลส์ (PWM) สิ่งนี้ควบคุมโดยฟังก์ชัน wirePi pwmWrite(pin, n) โดยที่ n มีค่าตั้งแต่ 0 ถึง 255 หาก n=2 LED จะสว่างเป็นสองเท่าของ n=1 ความสว่างจะเพิ่มเป็นสองเท่าเสมอเมื่อ n เพิ่มเป็นสองเท่า ดังนั้น n=255 จะสว่างเป็นสองเท่าของ n=128

ค่าของ n มักแสดงเป็นเปอร์เซ็นต์ที่เรียกว่ารอบการทำงาน รูปภาพแสดงร่องรอยของออสซิลโลสโคปสำหรับรอบการทำงาน 25, 50 และ 75%

ขั้นตอนที่ 2: LED และตัวต้านทาน

LED และตัวต้านทาน
LED และตัวต้านทาน

ไม่จำเป็น แต่การมีอุปกรณ์ที่มีประโยชน์เหล่านี้จะช่วยให้การทำ breadboarding ง่ายขึ้นมาก

ประสานตัวต้านทานกับไฟ LED สั้น ๆ ใช้ตัวต้านทาน 220-560 โอห์ม

ขั้นตอนที่ 3: Un-even Dimming

หรี่แสงไม่เท่ากัน
หรี่แสงไม่เท่ากัน

สร้างวงจรเหมือนในแผนภาพ ก็เหมือนวงจรไฟ LED กระพริบ มันใช้ wirePi pin 1 เพราะคุณต้องใช้พินที่เปิดใช้งาน PWM รวบรวมโปรแกรมและเรียกใช้ คุณจะสังเกตเห็นว่าไฟ LED ที่สว่างขึ้นจะหรี่ลงช้าลง เมื่อเข้าใกล้แสงสลัวที่สุดก็จะหรี่ลงอย่างรวดเร็ว

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

* รวบรวม: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * ดำเนินการ: sudo./fade1 * * หมายเลขพินทั้งหมดเป็นหมายเลข wirePi เว้นแต่จะระบุไว้เป็นอย่างอื่น. ******************************************************** ****************/ #include int main () { wirePiSetup (); // การตั้งค่าที่จำเป็นโดยการเดินสายPi pinMode (1, PWM_OUTPUT); // pwmSetMode(PWM_MODE_MS); // Mark/Space โหมด int i; ในขณะที่(1) { สำหรับ (i = 255; i > -1; i--) { pwmWrite (1, i); ล่าช้า(10); } สำหรับ (i = 0; i < 256; i++) { pwmWrite(1, i); ล่าช้า(10); } } }

ขั้นตอนต่อไปจะแสดงวิธีการหรี่ไฟ LED ในอัตราคงที่ และในขั้นเดียวสำหรับคำสั่ง

ขั้นตอนที่ 4: ขั้นตอนที่ 4: ขึ้นและลงใน One For() และในอัตราที่เท่ากัน

เพื่อให้ LED หรี่ลงที่อัตราคงที่ การหน่วงเวลา () จะต้องเพิ่มขึ้นในอัตราเลขชี้กำลัง เนื่องจากครึ่งรอบการทำงานจะให้ความสว่างเพียงครึ่งหนึ่งเสมอ

เส้น:

int d = (16-i/16)^2;

คำนวณกำลังสองของความสว่างผกผันเพื่อกำหนดความยาวของการหน่วงเวลา คอมไพล์และรันโปรแกรมนี้แล้วคุณจะเห็นว่า LED จะจางเข้าและออกในอัตราคงที่

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

* รวบรวม: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * ดำเนินการ: sudo./fade2 * * หมายเลขพินทั้งหมดเป็นหมายเลข wirePi เว้นแต่จะระบุไว้เป็นอย่างอื่น. ******************************************************** ****************/ #include int main () { wirePiSetup (); // การตั้งค่าที่จำเป็นโดยการเดินสายPi pinMode (1, PWM_OUTPUT); // pwmSetMode(PWM_MODE_MS); // ทำเครื่องหมาย / โหมด Space ในขณะที่ (1) { int i; int x = 1; สำหรับ (i = 0; i > -1; i = i + x) { int d = (16-i/16)^2; // คำนวณตารางผกผันของดัชนี pwmWrite(1, i); ล่าช้า (d); ถ้า (i == 255) x = -1; // เปลี่ยนทิศทางที่จุดสูงสุด } } }

แนะนำ: