Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Ankstesnėje pamokoje aš padariau potenciometro indikaciją naudodamas RGB žiedo neo pikselių diodą. tai galite pamatyti šiame straipsnyje „Potencio indikatorius naudoja RGB neopikselį“
Ir šiandien aš parodysiu stiprintuvo indikatorių, naudojant MAX7219 LED metrinį ekraną.
Norėdami tai padaryti, atlikite toliau nurodytus veiksmus.
1 žingsnis: reikalingi komponentai
Reikalingi komponentai:
- Arduino nano
- Potenciometras
- Max7219 LED matricos ekranas
- Jumper Wire
- Projekto valdyba
- USB mini
- nešiojamas kompiuteris
Reikalinga biblioteka
„LedControl“
2 žingsnis: schema
Norėdami surinkti komponentus, žiūrėkite aukščiau pateiktą scheminį brėžinį, taip pat galite pamatyti toliau pateiktą informaciją:
„Arduino“į „Led & potentio“
+5V ==> VCC ir 3. Potentio
GND ==> GND ir 1. Potentio
D6 ==> DataIn
D7 ==> CLK
D8 ==> CS / apkrova
3 žingsnis: programavimas
Norėdami tai padaryti, naudokite žemiau esantį kodą:
#include "LedControl.h"
/*
Dabar mums reikia „LedControl“, kad galėtume dirbti. ***** Šie PIN kodai tikriausiai neveiks su jūsų aparatine įranga ***** 6 kaištis prijungtas prie „DataIn“7 kaištis prijungtas prie CLK kaištis 8 prijungtas prie „LOAD“Turime tik vieną MAX72XX. */
LedControl lc = LedControl (6, 7, 8, 1);
nepasirašytas ilgas atidėjimo laikas = 100;
void setup () {
lc.sutdown (0, false); lc.setIntensity (0, 8); lc.clearDisplay (0); } void loop () {int val = analogRead (A0); val = žemėlapis (val, 0, 1023, 0, 8);
jei (val == 1)
{
lc.setRow (0, 0, B10000000);
}
jei (val == 2)
{lc.setRow (0, 0, B10000000); lc.setRow (0, 1, B10000000); } jei (val == 3) {
lc.setRow (0, 0, B10000000);
lc.setRow (0, 1, B10000000); lc.setRow (0, 2, B10000000); } jei (val == 4) {
lc.setRow (0, 0, B10000000);
lc.setRow (0, 1, B10000000); lc.setRow (0, 2, B10000000); lc.setRow (0, 3, B10000000); } jei (val == 5) {
lc.setRow (0, 0, B10000000);
lc.setRow (0, 1, B10000000); lc.setRow (0, 2, B10000000); lc.setRow (0, 3, B10000000); lc.setRow (0, 4, B10000000); } jei (val == 6) {lc.setRow (0, 0, B10000000); lc.setRow (0, 1, B10000000); lc.setRow (0, 2, B10000000); lc.setRow (0, 3, B10000000); lc.setRow (0, 4, B10000000); lc.setRow (0, 5, B10000000); } jei (val == 7) {lc.setRow (0, 0, B10000000); lc.setRow (0, 1, B10000000); lc.setRow (0, 2, B10000000); lc.setRow (0, 3, B10000000); lc.setRow (0, 4, B10000000); lc.setRow (0, 5, B10000000); lc.setRow (0, 6, B10000000); } jei (val == 8) {lc.setRow (0, 0, B10000000); lc.setRow (0, 1, B10000000); lc.setRow (0, 2, B10000000); lc.setRow (0, 3, B10000000); lc.setRow (0, 4, B10000000); lc.setRow (0, 5, B10000000); lc.setRow (0, 6, B10000000); lc.setRow (0, 7, B10000000); } lc.clearDisplay (0); }
4 žingsnis: rezultatas
Užprogramavus rezultatai atrodys taip.
Jei potencialas pasukamas į dešinę, tiesioginiai šviesos diodai vis dažniau seka apsisukimų skaičių.
Jei puodas pasukamas į kairę, tiesioginis šviesos diodas bus vis mažesnis dėl sukimosi stiprumo.