1. LED
A LED, más néven fénykibocsátó dióda, egy különböző színű fény kibocsátására alkalmas alkatrész. A Grove Red LED modul egy digitális, két állapotú komponens, amely csak az Arduino modul digitális kimenetét használja, a bemenetet nem. Ez a modul elsősorban vizuális fényvisszajelzés biztosítására használható különböző elektronikus eszközökben, például távirányítókban, rádiókban, hangszórókban pl. a ki/bekapcsolás jelzésére.
Kód:
#define LED 6 void setup() { // put your setup code here, to run once: pinMode(LED,OUTPUT); //Sets the pinMode to Output } void loop() { // put your main code here, to run repeatedly: digitalWrite(LED, HIGH); //Sets the voltage to high delay(1000); //Waits for 1000 milliseconds digitalWrite(LED, LOW); //Sets the voltage to low delay(1000); //Waits for 1000 milliseconds }
2. NYOMÓGOMB
A Grove Button modul egy egyszerű érzékelő. Csak két üzemmóddal rendelkezik: ki, vagy be, az Arduino nyelvén HIGH vagy LOW. A gomb megnyomása aktiválja a magas (be) állapotot, míg a gomb elengedése aktiválja az alacsony (ki) állapotot.
Kód:
#define button 4 // connect button to D4 int button_state = 0; // variable for reading the pushbutton status void setup() { Serial.begin(9600); // initialize the pushbutton pin as an input: pinMode(button, INPUT); } void loop(){ // read the state of the pushbutton value: button_state = digitalRead(button); if (button_state == HIGH) { // turn LED on: Serial.println("Button pressed!"); } delay(50); }
3. POTENCIOMÉTER
A Grove Rotary Angle Sensor modul tulajdonképpen egy potenciométer. Az érték analóg értékként olvasható, az Arduino bemenetén. Ez 0 és 1023 között mozog a potenciométeren lévő gomb elfordulásától függően. A maximális érték függ a bemenetre kapcsolt tápfeszültségtől, ezért győződjünk meg arról, hogy a panelen ez 5V van beállítva!. A szögtartomány 300 fok, lineáris értékváltozással. Az ellenállás értéke 10k ohm. Ez a modul használható pl. egy alkonykapcsoló be- és kikapcsolásának határérték beállítására, vagy egy villogó fény frekvenciájának beállítására.
Kód:
int potentiometer = A0; //Assign to pin A0 void setup() { Serial.begin(9600); //Begin serial communication pinMode(potentiometer, INPUT); //Sets the pinmode to input } void loop() { int sensor_value = analogRead(potentiometer); //Read the value from the potentiometer connected to the A0 pin int value = map(sensor_value, 0, 1023, 0, 100); //Map the value from 0, 1023 to 0, 100 Serial.print("Potentiometer value: "); Serial.println(value); //Print the value in the serial monitor delay(500); //Add a delay to see the value every 1/2 second }
4. BUZZER
A buzzer, más néven piezo buzzer vagy zümmer, egy olyan alkatrész, amelyet hang előállítására használhatunk. Ez egy digitális komponens, amely digitális kimenetekhez csatlakoztatható, és hangot bocsát ki, amikor a kimenet HIGH (magas) szintű. Alternatívaként egy analóg impulzusszélesség-modulációs kimenethez is csatlakoztatható különböző hangok és effektek létrehozásához. A Grove Buzzer 3,3 V és 5 V feszültségen is működik, 85 decibeles hangerősséggel. Ez a modul használható arra, hogy hangvisszajelzést adjon egy alkalmazásnak, mint például egy digitális órán a beállító-gomb kattanó hangja.
Kód:
#define BUZZER 5 void setup() { // put your setup code here, to run once: pinMode(BUZZER, OUTPUT); } void loop() { tone(BUZZER, 85); //Set the voltage to high and makes a noise delay(1000);//Waits for 1000 milliseconds noTone(BUZZER);//Sets the voltage to low and makes no noise delay(1000);//Waits for 1000 milliseconds }
5. FÉNYSZENZOR
A Grove fényérzékelő egy olyan modul, amely a fényintenzitás mérésére szolgál. Ez egy analóg komponens, ami 0 és 1023 közötti értékeket szolgáltat. A fényérzékelő nagyon sokoldalú komponens, használhatjuk például a mozgás érzékeléséhez, a nap mozgásának követéséhez vagy az automatikus világítás kapcsolásához.
Egy tipikus példa a fényérzékelők használata az okostelefonok kijelzőjének háttérvilágításánál. Amikor az érzékelő nagy fényintenzitást érzékel, akkor megnöveli a kijelző fényerejét, hogy az könnyebben olvasható legyen. Amikor sötét van, a fényerő csökken, és ennek eredményeképpen csökken az energiafogyasztás.
Kód:
int light_sensor = A3; void setup() { Serial.begin(9600); //begin Serial Communication } void loop() { int raw_light = analogRead(light_sensor); // read the raw value from light_sensor pin (A3) int light = map(raw_light, 0, 1023, 0, 100); // map the value from 0, 1023 to 0, 100 Serial.print("Light level: "); Serial.println(light); // print the light value in Serial Monitor delay(1000); // add a delay to only read and print every 1 second }
6. HANGSZENZOR
A Grove Sound Sensor modul kiváló eszköz a környezet zajszintjének mérésére. Működésének módja a hangrezgéseken keresztül történik, amelyek hatására az érzékelőben lévő lemez előre-hátra mozog, és így feszültségváltozást eredményez, amely könnyen mérhető. A nagyobb amplitúdók nagyobb értékeket jelentenek.
Kód:
int sound_sensor = A2; //assign to pin A2 void setup() { Serial.begin(9600); //begin Serial Communication } void loop() { int soundValue = 0; //create variable to store many different readings for (int i = 0; i < 32; i++) //create a for loop to read { soundValue += analogRead(sound_sensor); } //read the sound sensor soundValue >>= 5; //bitshift operation Serial.println(soundValue); //print the value of sound sensor //if a value higher than 500 is registered, we will print the following //this is done so that we can clearly see if the threshold is met if (soundValue > 500) { Serial.println(" || "); Serial.println(" |||||| "); Serial.println(" ||||||||| "); Serial.println(" ||||||||||||| "); Serial.println(" ||||||||||||||||| "); Serial.println(" ||||||||||||| "); Serial.println(" ||||||||| "); Serial.println(" |||||| "); Serial.println(" || "); } delay(50); //a shorter delay between readings }
7. LÉGNYOMÁSMÉRŐ SZENZOR
A Grove légnyomás érzékelő (BMP280) a Bosch BMP280 nagy pontosságú és alacsony fogyasztású digitális légnyomásmérőjéhez készült illesztő-kártya. Ez a modul a hőmérséklet és a légköri nyomás pontos mérésére használható. Mivel a légköri nyomás a tengerszint feletti magasságtól függ, egy hely hozzávetőleges magasságát is meg tudjuk mérni. Az érzékelőt időjárás-előrejelző állomásokon és a környezet adatainak gyűjtésére szolgáló alkalmazásokban használhatjuk.
Kód:
#include "Arduino_SensorKit.h" float pressure; void setup() { Serial.begin(9600); Pressure.begin(); } void loop() { // Get and print temperatures Serial.print("Temp: "); Serial.print(Pressure.readTemperature()); Serial.println("C"); // The unit for Celsius because original arduino don't support speical symbols // Get and print atmospheric pressure data Serial.print("Pressure: "); Serial.print(Pressure.readPressure()); Serial.println("Pa"); // Get and print altitude data Serial.print("Altitude: "); Serial.print(Pressure.readAltitude()); Serial.println("m"); Serial.println("\n");//add a line between output of different times. delay(1000); }
8. HŐMÉRSÉKLET SZENZOR
A Grove hőmérséklet- és páratartalom-érzékelő modul tökéletesen alkalmas a helyi környezeti adatok mérésére. A modul a DHT11 érzékelőt használja (a Digital, Humidity, Temperature rövidítése), amely analóg és digitális formátumban is szolgáltatja az értékeket. Az alábbi példaprogramban digitálisan fogjuk kiolvasni az érzékelőt.
Kód:
//#define DHTPIN 3 // By default the module connected to pin D3, it can be changed, define it before the #include of the library #include "Arduino_SensorKit.h" void setup() { Serial.begin(9600); Environment.begin(); } void loop() { Serial.print("Temperature = "); Serial.print(Environment.readTemperature()); //print temperature Serial.println(" C"); Serial.print("Humidity = "); Serial.print(Environment.readHumidity()); //print humidity Serial.println(" %"); delay(2000); }
9. GYORSULÁSMÉRŐ SZENZOR
A Grove 3 tengelyes digitális gyorsulásmérő modul, más néven háromtengelyes gyro, az x, y és z tengelyen méri az elmozdulást. A modul az I2C buszon keresztül csatlakozik az Arduino-hoz. Ezzel a modullal könnyedén hozzáadhatjuk a mozgásfigyelést projektünkhöz.
Kód:
#include "Arduino_SensorKit.h" void setup() { // put your setup code here, to run once: Serial.begin(9600); while(!Serial); Accelerometer.begin(); } void loop() { // put your main code here, to run repeatedly: // 3 axis Serial.print("x:"); Serial.print(Accelerometer.readX()); // Read the X Value Serial.print(" "); Serial.print("y:"); Serial.print(Accelerometer.readY()); // Read the Y Value Serial.print(" "); Serial.print("z:"); Serial.println(Accelerometer.readZ());// Read the Z Value delay(500); }
10. OLED KIJELZŐ
Az Organic Light-Emitting Diode, vagy egyszerűen OLED az Arduino Sensor Kit képernyőjéhez használt technológia. Az OLED szerves, szénalapú anyagot használ a megjelenítéshez. Amikor elektromosságot kapcsolunk ehhez az anyaghoz, az fényt bocsát ki. A Grove 0,96″ OLED kijelzőmodul programozását az Arduino_SensorKit könyvtár segítségével oldhatjuk meg. A modult a Grove Base Shield I2C jelű tüskéihez kell csatlakoztatni. A helyes működés feltétele, hogy a Base Shield-en található feszültség választó 5V-os állásban legyen!
Kód:
#include "Arduino_SensorKit.h" void setup() { Oled.begin(); Oled.setFlipMode(true); // Sets the rotation of the screen } void loop() { int random_value = analogRead(A0); //read value from A0 Oled.setFont(u8x8_font_chroma48medium8_r); Oled.setCursor(0, 33); // Set the Coordinates Oled.print("Analog Value:"); Oled.print(random_value); // Print the Values Oled.refreshDisplay(); // Update the Display delay(1000); }
A cikkben felhasznált anyagok forrása: https://sensorkit.arduino.cc/
A fentiekben bemutatott Arduino Sensor Kit megvásárolható a MálnaPC Webshopjában!
A cikk folytatása: http://www.malnasuli.hu/arduino/arduino-sensor-kit-3-resz/