Prog Shield LED Strip: Forskelle mellem versioner
Bar (diskussion | bidrag) Oprettede siden med "thumb|right|DHT11 Fugt-sensor Fugtsensoren (eller humidity sensor) er en komponent der kan registrere luftfugtighed, og kan måle det i %. Princippet i modulet er gennemgået på Humidity-siden, men opbygget med kode til PIC microcontroller. ==Software== Softwaren er baseret på et bibliotek lavet af AdaFruit<ref>[https://github.com/adafruit/DHT-sensor-library DHT Sensor Library] placeret ved GitHub</ref>, og kan downloades som en..." |
Bar (diskussion | bidrag) Ingen redigeringsopsummering |
||
| Linje 1: | Linje 1: | ||
[[fil: | [[fil:WS2812_LED-Strip.jpg|thumb|right|SW2812 LED Strip]] | ||
WS2812 LED Strip er en række med RGB LED'er, der kan styres af en enkelt digital pin. Antallet af LED'er er begrænset af hvor meget strøm der kan leveres af Arduinoen. | |||
Den viste strip har 18 LED'er og den den anvendte til eksemplet. Den er koblet op med en modstand (330-680 ohm), der fungerer som beskyttelse af både Arduino og LED-Strip ved fejltilslutning. | |||
==Software== | ==Software== | ||
Softwaren er baseret på et bibliotek lavet af AdaFruit<ref>[https://github.com/adafruit/ | Softwaren er baseret på et bibliotek lavet af AdaFruit<ref>[https://github.com/adafruit/Adafruit_NeoPixel LED-Strip library udviklet af AdaFruit] placeret ved GitHub</ref>, og kan downloades som en ZIP-fil fra [https://github.com/adafruit/DHT-sensor-library Denne side], eller [[media:AdaFruit_NeuPixel-Master.zip|denne ZIP-fil]]. Biblioteket downloades og installeres som beskrevet under [[Arduinos_Biblioteker#Tilføjelse_af_biblioteker|Arduinos biblioteker]]. | ||
===Anvendelsen af softwaren=== | ===Anvendelsen af softwaren=== | ||
Som alle andre biblioteker skal der sættes de grundlæggende ting op for at kontakte biblioteket og definere fugtsensoren, med ben og type osv. | Som alle andre biblioteker skal der sættes de grundlæggende ting op for at kontakte biblioteket og definere fugtsensoren, med ben og type osv. | ||
< | <SyntaxHighlight lang="c"> | ||
#include | #include <Adafruit_NeoPixel.h> | ||
#define PIN 2 // input pin Neopixel is attached to | |||
#define NUMPIXELS 18 // number of neopixels in strip | |||
Adafruit_NeoPixel pixels1 = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); | |||
</SyntaxHighlight> | |||
Til programmet anvendes enkelte variabler til styring af tid og farver: | |||
<SyntaxHighlight lang="C"> | |||
int delayval = 100; // timing delay in milliseconds | |||
byte R = 0; // Mængde af Rød (0 - 255) | |||
byte G = 255; // Mængde af Grøn (0 - 255) | |||
</ | byte B = 0; // Mængde af Blå (0 - 255) | ||
</SyntaxHighlight> | |||
Inde i [[setup()]] skrives en velkomst og der skal sættes gang i objektet ved hjælp af begin-metoden som vist her: | Inde i [[setup()]] skrives en velkomst og der skal sættes gang i objektet ved hjælp af begin-metoden som vist her: | ||
< | <SyntaxHighlight lang="C"> | ||
void setup() { | void setup() { | ||
Serial.begin(9600); | Serial.begin(9600); | ||
Serial.println(" | delay(200); | ||
Serial.println("Demo af LED-Strip WS2812"); | |||
// Initialize the NeoPixel library. | |||
pixels1.begin(); | |||
} | } | ||
</ | </SyntaxHighlight> | ||
I [[loop()]] | I [[loop()]] genneløbes en forløkke med alle LED'er, hvor farven sættes og vises, og efter et delay slukkes det igen: | ||
< | <SyntaxHighlight lang="C"> | ||
void loop() { | void loop() { | ||
// | for (int i=0; i < NUMPIXELS; i++) { | ||
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 | |||
pixels1.setPixelColor(i, pixels1.Color(R, G, B)); | |||
// This sends the updated pixel color to the hardware. | |||
pixels1.show(); | |||
// Delay for a period of time (in milliseconds). | |||
delay(delayval); | |||
// Turn off the LED | |||
pixels1.setPixelColor(i, pixels1.Color(0, 0, 0)); | |||
} | } | ||
} | } | ||
</ | </SyntaxHighlight> | ||
Koden laver et løbelys hen ad LED-Strippen, der gentages i det uendelige. | |||
===Yderligere muligheder i softwaren=== | ===Yderligere muligheder i softwaren=== | ||
Der ligger yderligere muligheder i klassen man kan anvende, hvis man ønsker andre måder at anvende ... på: | Der ligger yderligere muligheder i klassen man kan anvende, hvis man ønsker andre måder at anvende ... på: | ||
< | <SyntaxHighlight lang="C"> | ||
DHT(uint8_t pin, uint8_t type, uint8_t count=6); | DHT(uint8_t pin, uint8_t type, uint8_t count=6); | ||
void begin(void); | void begin(void); | ||
| Linje 76: | Linje 72: | ||
float readHumidity(bool force=false); | float readHumidity(bool force=false); | ||
boolean read(bool force=false); | boolean read(bool force=false); | ||
</ | </SyntaxHighlight> | ||
==Hardware== | ==Hardware== | ||
Versionen fra 11. feb. 2024, 14:04

WS2812 LED Strip er en række med RGB LED'er, der kan styres af en enkelt digital pin. Antallet af LED'er er begrænset af hvor meget strøm der kan leveres af Arduinoen.
Den viste strip har 18 LED'er og den den anvendte til eksemplet. Den er koblet op med en modstand (330-680 ohm), der fungerer som beskyttelse af både Arduino og LED-Strip ved fejltilslutning.
Software
Softwaren er baseret på et bibliotek lavet af AdaFruit[1], og kan downloades som en ZIP-fil fra Denne side, eller denne ZIP-fil. Biblioteket downloades og installeres som beskrevet under Arduinos biblioteker.
Anvendelsen af softwaren
Som alle andre biblioteker skal der sættes de grundlæggende ting op for at kontakte biblioteket og definere fugtsensoren, med ben og type osv.
#include <Adafruit_NeoPixel.h>
#define PIN 2 // input pin Neopixel is attached to
#define NUMPIXELS 18 // number of neopixels in strip
Adafruit_NeoPixel pixels1 = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
Til programmet anvendes enkelte variabler til styring af tid og farver:
int delayval = 100; // timing delay in milliseconds
byte R = 0; // Mængde af Rød (0 - 255)
byte G = 255; // Mængde af Grøn (0 - 255)
byte B = 0; // Mængde af Blå (0 - 255)
Inde i setup() skrives en velkomst og der skal sættes gang i objektet ved hjælp af begin-metoden som vist her:
void setup() {
Serial.begin(9600);
delay(200);
Serial.println("Demo af LED-Strip WS2812");
// Initialize the NeoPixel library.
pixels1.begin();
}
I loop() genneløbes en forløkke med alle LED'er, hvor farven sættes og vises, og efter et delay slukkes det igen:
void loop() {
for (int i=0; i < NUMPIXELS; i++) {
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels1.setPixelColor(i, pixels1.Color(R, G, B));
// This sends the updated pixel color to the hardware.
pixels1.show();
// Delay for a period of time (in milliseconds).
delay(delayval);
// Turn off the LED
pixels1.setPixelColor(i, pixels1.Color(0, 0, 0));
}
}
Koden laver et løbelys hen ad LED-Strippen, der gentages i det uendelige.
Yderligere muligheder i softwaren
Der ligger yderligere muligheder i klassen man kan anvende, hvis man ønsker andre måder at anvende ... på:
DHT(uint8_t pin, uint8_t type, uint8_t count=6);
void begin(void);
float readTemperature(bool S=false, bool force=false);
float convertCtoF(float);
float convertFtoC(float);
float computeHeatIndex(float temperature, float percentHumidity, bool isFahrenheit=true);
float readHumidity(bool force=false);
boolean read(bool force=false);
Hardware
Der læses på en ledning som beskrevet i Humidity, og på grund af et uheld, så er sensoren landet på et forkert ben, dette betyder dog ikke det store da biblioteket godt kan aflæse sensoren på det ben.
Layout
Fugtigheds-sensoren DHT11's placering på programmerings-shieldet kan ses her:
![]()
Placering af DHT11 på Programmerings-Shieldet - HUSK at vende den rigtigt
Sensoren går ind på A3, og vil på denne placering blokere for den Analoge indgang til fx LM35 eller infrarød afstandsmåler.
Alternativ placering
Hvis man ønsker at skrive softwaren selv, og ønsker at anvende interrupt til det, så kræver det en anden placering på programmerings-shieldet som det kan ses her:
![]()
Alternativ placering af DHT11 på Programmerings-Shieldet - HUSK at vende den rigtigt
På denne måde får sensoren fat i ben 2, og kan dermed anvende interrupt.
Denne placering blokerer så for RF-Link modtageren og for IR-Fjerbetjening Modtager
Referencer
- ↑ LED-Strip library udviklet af AdaFruit placeret ved GitHub