// ** code for 9 in 1 expansion board for uno
// ** this code is modified by hwthinker **
//dht sensor libary by adafruit diperlukan
#include "Arduino.h"
#include "DHT.h"
void beep(unsigned char delayms);
float tempC;
int reading;
int trimpotPin = A0;
int tempPin = A2;
int LDRPin = A1;
int LED1 = 13;
int LED2 = 12;
int ledRED = 9;
int ledBLUE = 10;
int ledGREEN = 11;
int buzzerPin = 5;
//DHT dht;
#define DHTPIN 4 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(ledRED, OUTPUT);
pinMode(ledBLUE, OUTPUT);
pinMode(ledGREEN, OUTPUT);
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
dht.begin();
}
void loop()
{
//***** Test DHT11 ********************
Serial.println("1: Test DHT11 using adafruit Lib");
for (int i = 0; i < 4; i++)
{
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f))
{
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.println(f);
}
//************* TEST LM35 ********************
Serial.println("2 : Test LM35");
for (int i = 0; i < 20; i++)
{
int val = analogRead(tempPin);
float mv = (val / 1024.0) * 5000;
float cel = mv / 10;
Serial.println(cel);
delay(300);
}
//************* TEST LDR ********************
Serial.println("");
Serial.println("3 : TEST LDR");
for (int i = 0; i < 20; i++)
{
int val = analogRead(LDRPin);
Serial.println(val);
delay(300);
}
Serial.println("");
Serial.println("4 : TEST Rotation VR");
for (int i = 0; i < 20; i++)
{
int val = analogRead(trimpotPin);
Serial.print(val);
Serial.print("\r");
delay(300);
Serial.print("\r");
Serial.print(" ");
}
Serial.println("");
// ************ Test LED1 dan LED2 ******************
Serial.println("5 : TEST LED1+LED2");
Serial.println("silahkan cek Lampu LED");
for (int i = 0; i < 20; i++)
{
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
delay(200);
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
delay(200);
}
Serial.println("");
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
//****** Test LED RGB *******************
Serial.println("6 : TEST LED RGB");
for (int i = 0; i < 7; i++)
{
digitalWrite(ledRED, 1);
digitalWrite(ledBLUE, 0);
digitalWrite(ledGREEN, 0);
delay(100);
digitalWrite(ledRED, 0);
digitalWrite(ledBLUE, 1);
digitalWrite(ledGREEN, 0);
delay(100);
digitalWrite(ledRED, 0);
digitalWrite(ledBLUE, 0);
digitalWrite(ledGREEN, 1);
delay(100);
digitalWrite(ledRED, 0);
digitalWrite(ledBLUE, 0);
digitalWrite(ledGREEN, 0);
delay(400);
}
//************* TEST SW1 + SW2 ********************
Serial.println("7 : TEST SW1+SW2 Press Button");
int count = 0;
do
{
if (digitalRead(2) == 0)
{
Serial.println("SW1 Press");
count++;
beep(50);
digitalWrite(13, HIGH);
delay(200);
digitalWrite(13, LOW);
}
if (digitalRead(3) == 0)
{
Serial.println("SW2 Press");
count++;
beep(50);
digitalWrite(12, HIGH);
delay(200);
digitalWrite(12, LOW);
}
} while (count < 4);
Serial.println("Finish TEST press Reset to Test Again");
delay(20000);
}
void beep(unsigned char delayms)
{
analogWrite(buzzerPin, 20); // Almost any value can be used except 0 and 255
// experiment to get the best tone
delay(delayms); // wait for a delayms ms
analogWrite(buzzerPin, 0); // 0 turns it off
delay(delayms); // wait for a delayms ms
}
Comments