Az eredeti Arduino Sensor Kit 10 darab izgalmas, úgynevezett „grove” modult tartalmaz, amelyek külön-külön is használhatók, vagy kombinálhatók összetettebb projektek készítéséhez. Az összes modul grove csatlakozót használ, amely aztán egy illesztő panel („Base Shield”) segítségével néhány másodperc alatt csatlakoztatható az Arduino UNO-hoz.
Az alábbiakban a szenzorok fontosabb tulajdonságait tekintjük át, és mindegyikhez egy-egy egyszerű mintapéldát is mutatunk a könnyebb alkalmazás érdekében.

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/