0% found this document useful (0 votes)
306 views46 pages

Proiecte Arduino

The document describes an Arduino sketch that uses an Ethernet shield to control 8 relays remotely via a web interface. The sketch allows each relay to be toggled on or off by sending HTTP requests to the Arduino's IP address followed by a number 1-8. For example, requesting 192.168.1.111/$1 would turn on relay 1 while 192.168.1.111/$2 would turn it off.

Uploaded by

Syad Aly
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
0% found this document useful (0 votes)
306 views46 pages

Proiecte Arduino

The document describes an Arduino sketch that uses an Ethernet shield to control 8 relays remotely via a web interface. The sketch allows each relay to be toggled on or off by sending HTTP requests to the Arduino's IP address followed by a number 1-8. For example, requesting 192.168.1.111/$1 would turn on relay 1 while 192.168.1.111/$2 would turn it off.

Uploaded by

Syad Aly
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 46

PIR alarm

// Uses a PIR sensor to detect movement, buzzes a buzzer


// more info here: http://blog.makezine.com/projects/pir-sensor-arduino-
alarm/
// email me, John Park, at jp@jpixl.net
// based upon:
// PIR sensor tester by Limor Fried of Adafruit
// tone code by michael@thegrebs.com


int ledPin = 13; // choose the pin for the LED
int inputPin = 2; // choose the input pin (for PIR sensor)
int pirState = LOW; // we start, assuming no motion detected
int val = 0; // variable for reading the pin status
int pinSpeaker = 10; //Set up a speaker on a PWM pin (digital 9,
10, or 11)

void setup() {
pinMode(ledPin, OUTPUT); // declare LED as output
pinMode(inputPin, INPUT); // declare sensor as input
pinMode(pinSpeaker, OUTPUT);
Serial.begin(9600);
}

void loop(){
val = digitalRead(inputPin); // read input value
if (val == HIGH) { // check if the input is HIGH
digitalWrite(ledPin, HIGH); // turn LED ON
playTone(300, 160);
delay(150);


if (pirState == LOW) {
// we have just turned on
Serial.println("Motion detected!");
// We only want to print on the output change, not state
pirState = HIGH;
}
} else {
digitalWrite(ledPin, LOW); // turn LED OFF
playTone(0, 0);
delay(300);
if (pirState == HIGH){
// we have just turned of
Serial.println("Motion ended!");
// We only want to print on the output change, not state
pirState = LOW;
}
}
}
// duration in mSecs, frequency in hertz
void playTone(long duration, int freq) {
duration *= 1000;
int period = (1.0 / freq) * 1000000;
long elapsed_time = 0;
while (elapsed_time < duration) {
digitalWrite(pinSpeaker,HIGH);
delayMicroseconds(period / 2);
digitalWrite(pinSpeaker, LOW);
delayMicroseconds(period / 2);
elapsed_time += (period);
}
}


Charlieplexing 12 LED s

#define A 12
#define B 11
#define C 10
#define D 9

#define PIN_CONFIG 0
#define PIN_STATE 1

#define LED_COUNT 12

int matrix[LED_COUNT][2][4] = {
// PIN_CONFIG PIN_STATE
// A B C D A B C D
{ { OUTPUT, OUTPUT, INPUT, INPUT }, { HIGH, LOW, LOW, LOW } }, // AB 0
{ { OUTPUT, OUTPUT, INPUT, INPUT }, { LOW, HIGH, LOW, LOW } }, // BA 1
{ { INPUT, OUTPUT, OUTPUT, INPUT }, { LOW, HIGH, LOW, LOW } }, // BC 2
{ { INPUT, OUTPUT, OUTPUT, INPUT }, { LOW, LOW, HIGH, LOW } }, // CB 3
{ { OUTPUT, INPUT, OUTPUT, INPUT }, { HIGH, LOW, LOW, LOW } }, // AC 4
{ { OUTPUT, INPUT, OUTPUT, INPUT }, { LOW, LOW, HIGH, LOW } }, // CA 5
{ { OUTPUT, INPUT, INPUT, OUTPUT }, { HIGH, LOW, LOW, LOW } }, // AD 6
{ { OUTPUT, INPUT, INPUT, OUTPUT }, { LOW, LOW, LOW, HIGH } }, // DA 7
{ { INPUT, OUTPUT, INPUT, OUTPUT }, { LOW, HIGH, LOW, LOW } }, // BD 8
{ { INPUT, OUTPUT, INPUT, OUTPUT }, { LOW, LOW, LOW, HIGH } }, // DB 9
{ { INPUT, INPUT, OUTPUT, OUTPUT }, { LOW, LOW, HIGH, LOW } }, // CD 10
{ { INPUT, INPUT, OUTPUT, OUTPUT }, { LOW, LOW, LOW, HIGH } } // DC 11
};

void turnOn( int led ) {
pinMode( A, matrix[led][PIN_CONFIG][0] );
pinMode( B, matrix[led][PIN_CONFIG][1] );
pinMode( C, matrix[led][PIN_CONFIG][2] );
pinMode( D, matrix[led][PIN_CONFIG][3] );
digitalWrite( A, matrix[led][PIN_STATE][0] );
digitalWrite( B, matrix[led][PIN_STATE][1] );
digitalWrite( C, matrix[led][PIN_STATE][2] );
digitalWrite( D, matrix[led][PIN_STATE][3] );
}

void setup() {}

void loop() {
for( int l = 0; l < LED_COUNT; l++ ) {
turnOn( l );
delay( 1000 / LED_COUNT );
}
}




#define A 12
#define B 11
#define C 10
#define D 9

#define LED_COUNT 12
#define DDR_BYTE 0
#define PORT_BYTE 1

byte matrix[LED_COUNT][2] = {
// DDR_BYTE PORT_BYTE
// ABCD ABCD
{ 0b00011000, 0b00010000 }, // AB 0
{ 0b00011000, 0b00001000 }, // BA 1
{ 0b00001100, 0b00001000 }, // BC 2
{ 0b00011100, 0b00000100 }, // CB 3
{ 0b00010100, 0b00010000 }, // AC 4
{ 0b00010100, 0b00000100 }, // CA 5
{ 0b00010010, 0b00010000 }, // AD 6
{ 0b00010010, 0b00000010 }, // DA 7
{ 0b00001010, 0b00001000 }, // BD 8
{ 0b00001010, 0b00000010 }, // DB 9
{ 0b00000110, 0b00000100 }, // CD 10
{ 0b00000110, 0b00000010 } // DC 11
};

void turnOn( byte led ) {
DDRB = matrix[led][DDR_BYTE];
PORTB = matrix[led][PORT_BYTE];
}

void setup() {}

void loop() {
for( byte l = 0; l < LED_COUNT; l++ ) {
turnOn( l );
delay( 10 );
}
}


Aquaponics Online Temperature
and Humidity


Control funduino 8 relay channel module with arduino and
ethernet shield


/*
Network Relay System


*/

#include "etherShield.h"
#include "ETHER_28J60.h"

int i, rsize, relay[] = {8, 7, 6, 5, 3, 2, 1, 0};

static uint8_t mac[6] = {0x10, 0x10, 0x10, 0x02, 0x00, 0x00};
static uint8_t ip[4] = {10, 10, 10, 200};
static uint16_t port = 80;
unsigned long runtime, starttime;

ETHER_28J60 ether;

void setup() {
pinMode(4, OUTPUT); // REQUIRED for eKitsZone.com ENC28J60 shield!!!
digitalWrite(4, HIGH); // Same as above.

// Serial.begin(57600);
ether.setup(mac, ip, port);
rsize = sizeof(relay) / 2;
for (i = 0; i < rsize; i = i + 1) {
pinMode(relay[i], OUTPUT);
}
runtime = 0;
starttime = millis();
}

void loop() {
int c;
char * param;
char * params;

if (params = ether.serviceRequest()) {
if (strstr(params, "?status")) {
for (i = 0; i < rsize; i = i + 1) {
ether.print(digitalRead(relay[i]));
}
} else {
if((strlen(params) > 3) && (!(strstr(params, "favicon.ico")))) {
runtime = 0;
param = strtok(params, "?&");
while (param != NULL) {
if (strstr(param, "p=")) {
i = atoi(param + 2) - 1;
} else if (strstr(param, "c=")) {
c = atoi(param + 2);
if (c == 1) {
for (c = 0; c < rsize; c = c + 1) { digitalWrite(relay[c],
LOW); }
digitalWrite(relay[i], HIGH);
} else {
for (c = 0; c < rsize; c = c + 1) { digitalWrite(relay[c],
LOW); }
}
} else if (strstr(param, "t=")) {
runtime = (unsigned long)(atoi(param + 2)) * 1000;
if (runtime < 15000) { runtime = 15000; }
starttime = millis();
}
param = strtok(NULL, "& ");
}
if (runtime == 0) {
runtime = 60000; // 60 sec. default run time (takes 10 seconds
for valve to open).
starttime = millis();
}
}

ether.print("<tt>Network Relay System\n<br>\n");
for (i = 0; i < rsize; i = i + 1) {
ether.print("<br>Port #");
ether.print(i+1);
ether.print(": <a href='?p=");
ether.print(i+1);
if (digitalRead(relay[i]) == 1) {
ether.print("&c=0'>Off</a> in ");
ether.print((runtime - (millis() - starttime))/1000);
ether.print(" seconds.\n");
}
else {
ether.print("&c=1'>On</a>\n");
}
}
ether.print("<p><a href='/'>Refresh</a>,<a
href='/?status'>Status</a>\n");
}
ether.respond();
}

if ((unsigned long)(millis() - starttime) > runtime) {
for (c = 0; c < rsize; c = c + 1) { digitalWrite(relay[c], LOW); }
}
}




Web Control Relay - Arduino



Using the same hardware and an ethernet sheild I found and modified an ethernet sketch to
control the relays. This sketh controls each rely with a specific URL. I have the IP set to
192.168.1.111. The URL for pin 2 is 192.168.1.111/$1 and 192.168.1.111/$2 to toggle it on
or off.
pin3 is $3 and $4
pin4 is $5 and $6
pin5 is $7 and $8
pin6 is $9 and $0
pin7 is $A and $B
pin8 is $C and $D
pin9 is $E and $F

I didn't write this sketch. I just made a few mods. All credit goes to the original author.

/*
Web Server Demo
thrown together by Randy Sarafan

Allows you to turn on and off an LED by entering different urls.

To turn it on:
http://your-IP-address/$1

To turn it off:
http://your-IP-address/$2

Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
* Connect an LED to pin D2 and put it in series with a 220 ohm resistor to ground

Based almost entirely upon Web Server by Tom Igoe and David Mellis

Edit history:
created 18 Dec 2009
by David A. Mellis
modified 4 Sep 2010
by Tom Igoe

*/

#include <SPI.h>
#include <Ethernet.h>

boolean incoming = 0;

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 };
IPAddress ip(192,168,1,111); //<<< ENTER YOUR IP ADDRESS HERE!!!

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);

// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.begin(9600);
}

void loop()
{
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply

//reads URL string from $ to first blank space
if(incoming && c == ' '){
incoming = 0;
}
if(c == '$'){
incoming = 1;
}

//Checks for the URL string $1 or $2
if(incoming == 1){
Serial.println(c);

if(c == '1'){
Serial.println("ON");
digitalWrite(2, HIGH);
}
if(c == '2'){
Serial.println("OFF");
digitalWrite(2, LOW);
}
if(c == '3'){
Serial.println("ON");
digitalWrite(3, HIGH);
}
if(c == '4'){
Serial.println("OFF");
digitalWrite(3, LOW);
}
if(c == '5'){
Serial.println("ON");
digitalWrite(4, HIGH);
}
if(c == '6'){
Serial.println("OFF");
digitalWrite(4, LOW);
}
if(c == '7'){
Serial.println("ON");
digitalWrite(5, HIGH);
}
if(c == '8'){
Serial.println("OFF");
digitalWrite(5, LOW);
}
if(c == '9'){
Serial.println("ON");
digitalWrite(6, HIGH);
}
if(c == '0'){
Serial.println("OFF");
digitalWrite(6, LOW);
}
if(c == 'A'){
Serial.println("ON");
digitalWrite(7, HIGH);
}
if(c == 'B'){
Serial.println("OFF");
digitalWrite(7, LOW);
}
if(c == 'C'){
Serial.println("ON");
digitalWrite(8, HIGH);
}
if(c == 'D'){
Serial.println("OFF");
digitalWrite(8, LOW);
}
if(c == 'E'){
Serial.println("ON");
digitalWrite(9, HIGH);
}
if(c == 'F'){
Serial.println("OFF");
digitalWrite(9, LOW);
}

}

if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
}
}



Program de test modul 8 relee
int Relay1 = 13;
int Relay2 = 12;
int Relay3 = 11;
int Relay4 = 10;
int Relay5 = 9;
int Relay6 = 8;
int Relay7 = 7;
int Relay8 = 6;
void setup()
{
pinMode(Relay1, OUTPUT); //Set Pin12 as output
pinMode(Relay2, OUTPUT);
pinMode(Relay3, OUTPUT);
pinMode(Relay4, OUTPUT);
pinMode(Relay5, OUTPUT);
pinMode(Relay6, OUTPUT);
pinMode(Relay7, OUTPUT);
pinMode(Relay8, OUTPUT);
}
void loop()
{
digitalWrite(Relay1, HIGH); //Turn off relay
delay(2000);
digitalWrite(Relay1, LOW); //Turn on relay
delay(2000);
digitalWrite(Relay2, HIGH); //Turn off relay
delay(2000);
digitalWrite(Relay2, LOW); //Turn on relay
delay(2000);
digitalWrite(Relay3, HIGH); //Turn off relay
delay(2000);
digitalWrite(Relay3, LOW); //Turn on relay
delay(2000);
digitalWrite(Relay4, HIGH); //Turn off relay
delay(2000);
digitalWrite(Relay4, LOW); //Turn on relay
delay(2000);
digitalWrite(Relay5, HIGH); //Turn off relay
delay(2000);
digitalWrite(Relay5, LOW); //Turn on relay
delay(2000);
digitalWrite(Relay6, HIGH); //Turn off relay
delay(2000);
digitalWrite(Relay6, LOW); //Turn on relay
delay(2000);
digitalWrite(Relay7, HIGH); //Turn off relay
delay(2000);
digitalWrite(Relay7, LOW); //Turn on relay
delay(2000);
digitalWrite(Relay8, HIGH); //Turn off relay
delay(2000);
digitalWrite(Relay8, LOW); //Turn on relay
delay(2000);
}




Control relay module with ethernet shield and some nice html shit

//for use with IDE 1.0


//open serial monitor to see what the arduino receives


//use the \ slash to escape the " in the html


//for use with W5100 based ethernet shields


// this project is hosted at


// http://code.google.com/p/arduino-autohome/




#include <SPI.h>


#include <Ethernet.h>










byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x78, 0xE0 }; // <------- PUT YOUR MAC
Address Here


byte ip[] = { 192, 168, 1, 102 }; // <------- PUT YOUR IP
Address Here


byte gateway[] = { 192, 168, 1, 254 }; // <------- PUT YOUR ROUTERS
IP Address to which your shield is connected Here


byte subnet[] = { 255, 255, 255, 0 }; // <------- It will be as it
is in most of the cases


EthernetServer server(80); // <------- It's Defaulf
Server Port for Ethernet Shield




String readString;




//////////////////////




void setup()


{




pinMode(6, OUTPUT); // Pin Assignment through which relay will be controlled


pinMode(7, OUTPUT);


pinMode(8, OUTPUT);


pinMode(9, OUTPUT);








//start Ethernet





Ethernet.begin(mac, ip, gateway, subnet);


server.begin();





//enable serial data print





Serial.begin(9600);


Serial.println("server LED test 1.0"); // so that we can know what is getting
loaded


}




void loop()


{








// Create a client connection




EthernetClient client = server.available();


if (client) {


while (client.connected()) {


if (client.available()) {


char c = client.read();







//read char by char HTTP request


if (readString.length() < 100) {




//store characters to string


readString += c;


//Serial.print(c);


}




//if HTTP request has ended


if (c == '\n') {




///////////////


Serial.println(readString); //print to serial monitor for debuging




/* Start OF HTML Section. Here Keep everything as it is unless you
understands its working */





client.println("HTTP/1.1 200 OK"); //send new page


client.println("Content-Type: text/html");


client.println();


//client.println("<meta http-equiv=\"refresh\" content=\"5\">");




client.println("<HTML>");


client.println("<HEAD>");


client.println("<meta name='apple-mobile-web-app-capable' content='yes'
/>");


client.println("<meta name='apple-mobile-web-app-status-bar-style'
content='black-translucent' />");


client.println("<link rel=\"stylesheet\" type=\"text/css\"
href=\"http://arduino-autohome.googlecode.com/svn/trunk/autohome.css\" />");








client.println("</HEAD>");


client.println("<body bgcolor=\"#D0D0D0\">");





client.println("<hr/>");


client.println("<hr/>");


client.println("<h4><center><img border=\"2\"
src=\"https://lh3.googleusercontent.com/-
C6BoJrRUFko/UEUFeCwkvdI/AAAAAAAAAOc/E7gcYvPV6r4/s960/Logo.jpg\"
/></center></h4>");


client.println("<hr/>");


client.println("<hr/>");





client.println("<br />");


client.println("<br />");


client.println("<br />");


client.println("<br />");


client.println("<br />");





// Relay Control Code


client.println("<a href=\"/?relay1on\"\">Turn On Light 1</a>");


client.println("<a href=\"/?relay1off\"\">Turn Off Light 1</a><br />");





client.println("<br />");


client.println("<br />");


client.println("<br />");


client.println("<br />");





client.println("<a href=\"/?relay2on\"\">Turn On Light 2</a>");


client.println("<a href=\"/?relay2off\"\">Turn Off Light 2</a><br />");





client.println("<br />");


client.println("<br />");


client.println("<br />");


client.println("<br />");





client.println("<a href=\"/?relay3on\"\">Turn On Light 3</a>");


client.println("<a href=\"/?relay3off\"\">Turn Off Light 3</a><br />");





client.println("<br />");


client.println("<br />");


client.println("<br />");


client.println("<br />");





client.println("<a href=\"/?relay4on\"\">Turn On Light 4</a>");


client.println("<a href=\"/?relay4off\"\">Turn Off Light 4</a><br />");




client.println("<br />");


client.println("<br />");














// control arduino pin via ethernet Start //








if(readString.indexOf("?relay1on") >0)//checks for on


{


digitalWrite(6, HIGH); // set pin 4 high


Serial.println("Led On");


client.println("<link rel='apple-touch-icon'
href='http://chriscosma.co.cc/on.png' />");


//client.println("Light 1 Is On");


client.println("<br />");


}


else{


if(readString.indexOf("?relay1off") >0)//checks for off


{


digitalWrite(6, LOW); // set pin 4 low


Serial.println("Led Off");


client.println("<link rel='apple-touch-icon'
href='http://chriscosma.co.cc/off.png' />");


//client.println("Light 1 Is Off");


client.println("<br />");


}


}





if(readString.indexOf("?relay2on") >0)//checks for on


{


digitalWrite(7, HIGH); // set pin 4 high


Serial.println("Led On");


client.println("<link rel='apple-touch-icon'
href='http://chriscosma.co.cc/on.png' />");


//client.println("Light 2 Is On");


client.println("<br />");


}


else{


if(readString.indexOf("?relay2off") >0)//checks for off


{


digitalWrite(7, LOW); // set pin 4 low


Serial.println("Led Off");


client.println("<link rel='apple-touch-icon'
href='http://chriscosma.co.cc/off.png' />");


//client.println("Light 2 Is Off");


client.println("<br />");


}


}





if(readString.indexOf("?relay3on") >0)//checks for on


{


digitalWrite(8, HIGH); // set pin 4 high


Serial.println("Led On");


client.println("<link rel='apple-touch-icon'
href='http://chriscosma.co.cc/on.png' />");


// client.println("Light 3 Is On");


client.println("<br />");


}


else{


if(readString.indexOf("?relay3off") >0)//checks for off


{


digitalWrite(8, LOW); // set pin 4 low


Serial.println("Led Off");


client.println("<link rel='apple-touch-icon'
href='http://chriscosma.co.cc/off.png' />");


//client.println("Light 3 Is Off");


client.println("<br />");


}


}








if(readString.indexOf("?relay4on") >0)//checks for on


{


digitalWrite(9, HIGH); // set pin 4 high


Serial.println("Led On");


client.println("<link rel='apple-touch-icon'
href='http://chriscosma.co.cc/on.png' />");


//client.println("Light 4 Is On");


client.println("<br />");


}


else{


if(readString.indexOf("?relay4off") >0)//checks for off


{


digitalWrite(9, LOW); // set pin 4 low


Serial.println("Led Off");


client.println("<link rel='apple-touch-icon'
href='http://chriscosma.co.cc/off.png' />");


//client.println("Light 4 Is Off");


client.println("<br />");


}


}





// control arduino pin via ethernet End //











// Relay Status Display


client.println("<center>");


client.println("<table border=\"5\">");


client.println("<tr>");





if (digitalRead(6))


{


client.print("<td>Light 1 is ON</td>");





}


else


{


client.print("<td>Light 1 is OFF</td>");





}








client.println("<br />");





if (digitalRead(7))


{


client.print("<td>Light 2 is ON</td>");





}


else


{


client.print("<td>Light 2 is OFF</td>");





}





client.println("</tr>");


client.println("<tr>");





if (digitalRead(8))


{


client.print("<td>Light 3 is ON</td>");





}


else


{


client.print("<td>Light 3 is OFF</td>");





}














if (digitalRead(9))


{


client.print("<td>Light 4 is ON</td>");





}


else


{


client.print("<td>Light 4 is OFF</td>");





}





client.println("</tr>");


client.println("</table>");





client.println("</center>");











//clearing string for next read





readString="";




client.println("</body>");


client.println("</HTML>");




delay(1);


//stopping client


client.stop();




}


}


}


}


}




Observatie: se alege orice adresa la shieldul ethernet pt arduino, adica alegem
ce ip vrem noi unde ne cereyour ip;





Cod modul relee

/* Used Arduino Mega pins and Relay ones
- D46 > In1, D47 > In2, D48 > In3, D49 > In4, D50 > In5, D51 > In6, D52 > In7, D53
> In8
- VCC > 5V
- I GND on Relay board > Arduino's GND
- II GND on Relay board > External Power source's GND (If you use external power
source) */

void setup(){
for(int i=46; i<=53; i++){
pinMode(i, OUTPUT);
}
}

void loop(){
for(int i=46; i<=53; i++){
int z = i-45;
digitalWrite(i, LOW);
delay(z*20);
digitalWrite(i, HIGH);
delay(z*20);
}
}



Cod de test modul 8 relee pare sa fuctioneze

int relay1 = 35;
int relay2 = 37;
int relay3 = 39;
int relay4 = 41;
int relay5 = 43;
int relay6 = 45;
int relay7 = 47;
int relay8 = 49;
int i = 1000;

void setup() {
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(relay5, OUTPUT);
pinMode(relay6, OUTPUT);
pinMode(relay7, OUTPUT);
pinMode(relay8, OUTPUT);
}
void loop() {
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, HIGH);
digitalWrite(relay5, HIGH);
digitalWrite(relay6, HIGH);
digitalWrite(relay7, HIGH);
digitalWrite(relay8, HIGH);
if (i >= 5){
delay(i);
digitalWrite(relay1, LOW);
delay(i);
digitalWrite(relay1, HIGH);
delay(i);
digitalWrite(relay2, LOW);
delay(i);
digitalWrite(relay2, HIGH);
delay(i);
digitalWrite(relay3, LOW);
delay(i);
digitalWrite(relay3, HIGH);
delay(i);
digitalWrite(relay4, LOW);
delay(i);
digitalWrite(relay4, HIGH);
delay(i);
digitalWrite(relay5, LOW);
delay(i);
digitalWrite(relay5, HIGH);
delay(i);
digitalWrite(relay6, LOW);
delay(i);
digitalWrite(relay6, HIGH);
delay(i);
digitalWrite(relay7, LOW);
delay(i);
digitalWrite(relay7, HIGH);
delay(i);
digitalWrite(relay8, LOW);
delay(i);
digitalWrite(relay8, HIGH);
i = i/2;
}
else{
i = 1000;
}
}








Sketch pentru PIR

// http://blog.roman-mueller.ch/index.php/2013/01/26/hc-sr501-passive-
infrared-sensor-with-arduino/
// http://robotic-controls.com/learn/sensors/pir-sensor-hc-sr501
// http://nicuflorica.blogspot.ro/2014/02/senzorul-de-prezenta-hc-sr501-si-
arduino.html

#define pir A0
#define led 13

void setup() {
Serial.begin(9600);
pinMode(pir, INPUT);
pinMode(led, OUTPUT);
}

void loop() {
int val = analogRead(pir);
float val1 = val*5.00/1023.00;
digitalWrite(led, LOW);
if (val <650) {
Serial.print(val);
Serial.print("/1023 = ");
Serial.print(val1);
Serial.println("V - No motion"); //if the value read is low, there was
no motion

}
else {
Serial.print(val);
Serial.print("/1023 = ");
Serial.print(val1);
Serial.println("V - Motion!"); //if the value read was high, there was
motion
digitalWrite(led, HIGH);
}
delay(500);
}



Pentru senzori de temperatura
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into port 10 on the Arduino
#define ONE_WIRE_BUS 10
#define TEMPERATURE_PRECISION 12

// Setup a oneWire instance to communicate with any OneWire devices (not ju
st Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

// arrays to hold device addresses
DeviceAddress rightThermometer, midleThermometer, leftThermometer;


void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library use by niq_ro");
Serial.println("---------------------------------------------------");

// Start up the library
sensors.begin();
DeviceAddress rightThermometer = { 0x28, 0xAC, 0x7A, 0xD4, 0x4, 0x0, 0x0,
0x7E };
DeviceAddress midleThermometer = { 0x28, 0xF5, 0xFB, 0x58, 0x5, 0x0, 0x0,
0xA0 };
DeviceAddress leftThermometer = { 0x28, 0xCB, 0xF0, 0x58, 0x5, 0x0, 0x0,
0x2E };


// method 1: by index
if (!sensors.getAddress(rightThermometer, 0)) Serial.println("Unable to
find address for Device 0");
if (!sensors.getAddress(midleThermometer, 1)) Serial.println("Unable to
find address for Device 1");
if (!sensors.getAddress(leftThermometer, 2)) Serial.println("Unable to
find address for Device 2");


// show the addresses we found on the bus
Serial.print("Device 0 Address: ");
printAddress(rightThermometer);
Serial.println();

Serial.print("Device 1 Address: ");
printAddress(midleThermometer);
Serial.println();

Serial.print("Device 2 Address: ");
printAddress(leftThermometer);
Serial.println();


// set the resolution to 9..12 bit
sensors.setResolution(rightThermometer, TEMPERATURE_PRECISION);
sensors.setResolution(midleThermometer, TEMPERATURE_PRECISION);
sensors.setResolution(leftThermometer, TEMPERATURE_PRECISION);

/*
Serial.print("Device 0 Resolution: ");
Serial.print(sensors.getResolution(rightThermometer), DEC);
Serial.println();

Serial.print("Device 1 Resolution: ");
Serial.print(sensors.getResolution(midleThermometer), DEC);
Serial.println();

Serial.print("Device 2 Resolution: ");
Serial.print(sensors.getResolution(leftThermometer), DEC);
Serial.println();
*/
}


// function to print a device address
void printAddress(DeviceAddress device)
{
for (uint8_t i = 0; i < 8; i++)
{
// zero pad the address if necessary
if (device[i] < 16) Serial.print("0");
Serial.print(device[i], HEX);
}
Serial.println(" - ");
}

// function to print the temperature for a device
void printTemperature(DeviceAddress device)
{
float tempC = sensors.getTempC(device);
Serial.print("Temp C: ");
if (tempC == -127.00) {
Serial.print("Error");
} else {
Serial.print(tempC);
Serial.print(" Temp F: ");
Serial.print(DallasTemperature::toFahrenheit(tempC));
}
}
// function to print a device's resolution
void printResolution(DeviceAddress device)
{
Serial.print("Resolution: ");
Serial.print(sensors.getResolution(device));
Serial.println();
}

// main function to print information about a device
void printData(DeviceAddress device)
{
Serial.print("Address: ");
printAddress(device);
Serial.print(" ");
printTemperature(device);
Serial.println();
}

void loop(void)
{
DeviceAddress rightThermometer = { 0x28, 0xAC, 0x7A, 0xD4, 0x4, 0x0, 0x0,
0x7E };
DeviceAddress midleThermometer = { 0x28, 0xF5, 0xFB, 0x58, 0x5, 0x0, 0x0,
0xA0 };
DeviceAddress leftThermometer = { 0x28, 0xCB, 0xF0, 0x58, 0x5, 0x0, 0x0,
0x2E };

// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.println("---------------------------------------");
Serial.println(" ");
Serial.print("Requesting temperatures...");
sensors.requestTemperatures();
Serial.println("DONE");
Serial.println("---------------------------------------");
Serial.println(" ");

// print the device information
Serial.print("Device DS18B20 (right) ");
printData(rightThermometer);
Serial.println("---------------------------------------");
Serial.print("Device MAX31820 (center) ");
printData(midleThermometer);
Serial.println("---------------------------------------");
Serial.print("Device MAX31820 (left) ");
printData(leftThermometer);
Serial.println("---------------------------------------");
delay(3000);
}


Variator de tensiune pentru bec cu Arduino (VII)

/*
AC Light Control
Updated by Robert Twomey <rtwomey@u.washington.edu>
Thanks to http://www.andrewkilpatrick.org/blog/?page_id=445
and http://www.hoelscher-hi.de/hendrik/english/dimmer.htm
adapted sketch by niq_ro from
http://www.tehnic.go.ro
http://www.niqro.3x.ro
http://nicuflorica.blogspot.com

IR Remote Kit Test
Uses YourDuino.com IR Infrared Remote Control Kit 2
http://arduino-direct.com/sunshop/index.php?l=product_detail&p=153
based on code by Ken Shirriff - http://arcfn.com
Get Library at: https://github.com/shirriff/Arduino-IRremote

Bluetooth:
// adapted sketch from http://english.cxem.net/arduino/arduino4.php
*/

#include <LiquidCrystal.h>
// use LiquidCrystal.h library for alphanumerical display 1602
LiquidCrystal lcd(13,12,11,10,9,8);
/* -------------------
| LCD | Arduino |
-------------------
LCD RS pin to digital pin 13 | RS | D13 |
LCD Enable pin to digital pin 12 | E | D12 |
LCD D4 pin to digital pin 11 | D4 | D11 |
LCD D5 pin to digital pin 10 | D5 | D10 |
LCD D6 pin to digital pin 9 | D6 | D9 |
LCD D7 pin to digital pin 8 | D7 | D8 |
LCD R/W pin to ground | R/W | GND |
-------------------
*/

#include "IRremote.h"
//-----( Declare Constants )-----
int receiver = 7; // pin 1 of IR receiver to Arduino digital pin 7
//-----( Declare objects )-----
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results; // create instance of 'decode_results'
//-----( Declare Variables )-----


#include <TimerOne.h> // Avaiable from
http://www.arduino.cc/playground/Code/Timer1

volatile int i=0; // Variable to use as a counter
volatile boolean zero_cross=0; // Boolean to store a "switch" to tell us if we
have crossed zero
int AC_pin = 3; // Output to Opto Triac
int buton1 = 4; // first button at pin 4
int buton2 = 5; // second button at pin 5
int dim2 = 0; // led control
int dim = 128; // Dimming level (0-128) 0 = on, 128 = 0ff
int pas = 8; // step for count;
// version: 4m7 (15.04.2013 - Craiova, Romania) -
16 steps, 4 button & LED blue to red (off to MAX)
// version: 7m6.1 (23.01.2014 - Craiova, Romania) - 16 steps, 2 button & LCD1602

int freqStep = 75; // This is the delay-per-brightness step in microseconds.

char incomingByte; // incoming data from serial 9bluetooth)

void setup() { // Begin setup

Serial.begin(9600); // initialization

irrecv.enableIRIn(); // Start the IR receiver (classic remote)

pinMode(buton1, INPUT); // set buton1 pin as input
pinMode(buton2, INPUT); // set buton1 pin as input
pinMode(AC_pin, OUTPUT); // Set the Triac pin as output
attachInterrupt(0, zero_cross_detect, RISING); // Attach an Interupt to Pin 2
(interupt 0) for Zero Cross Detection
Timer1.initialize(freqStep); // Initialize TimerOne library
for the freq we need
Timer1.attachInterrupt(dim_check, freqStep);
// Use the TimerOne Library to attach an interrupt

lcd.begin(16, 2); // set up the LCD's number of columns and rows:
lcd.clear(); // clear the screen
lcd.setCursor(2, 0); // put cursor at colon 0 and row 0
lcd.print("16 steps AC"); // print a text
lcd.setCursor(0, 1); // put cursor at colon 0 and row 1
lcd.print("dimmer for bulb"); // print a text
delay (3000);
lcd.clear(); // clear the screen
lcd.setCursor(1, 0); // put cursor at colon 0 and row 0
lcd.print("this sketch is"); // print a text
lcd.setCursor(1, 1); // put cursor at colon 0 and row 1
lcd.print("made by niq_ro"); // print a text
delay (3000);
lcd.clear(); // clear the screen
}

void zero_cross_detect() {
zero_cross = true; // set the boolean to true to tell our dimming
function that a zero cross has occured
i=0;
digitalWrite(AC_pin, LOW);
}

// Turn on the TRIAC at the appropriate time
void dim_check() {
if(zero_cross == true) {
if(i>=dim) {
digitalWrite(AC_pin, HIGH); // turn on light
i=0; // reset time step counter
zero_cross=false; // reset zero cross detection
}
else {
i++; // increment time step counter
}
}
}


//-----( Declare User-written Functions )-----
void translateIR() // takes action based on IR code received

// describing Car MP3 IR codes
{
switch(results.value)
{
case 0xFFA25D:
Serial.println(" CH- ");
break;

case 0xFF629D:
Serial.println(" CH ");
break;

case 0xFFE21D:
Serial.println(" CH+ ");
break;

case 0xFF22DD:
{
Serial.println(" PREV ");
dim=128;
}
break;

case 0xFF02FD:
{
Serial.println(" NEXT ");
dim=0;
}
break;

case 0xFFC23D:
Serial.println(" PLAY/PAUSE ");
break;

case 0xFFE01F:
{
Serial.println(" VOL- ");
if (dim<127)
{
dim = dim + pas;
if (dim>127)
{
dim=128; // in vechiul sketch era 127
}
}
}
break;

case 0xFFA857:
{
Serial.println(" VOL+ ");
{
if (dim>5)
{
dim = dim - pas;
if (dim<0)
{
dim=0; // in vechiul sketch era 1
}
}
}
}
break;

case 0xFF906F:
Serial.println(" EQ ");
break;

case 0xFF6897:
{
Serial.println(" 0 ");
// analogWrite(ledr, 0);
// analogWrite(leda, 0);
// analogWrite(ledv, 0);
}
break;

case 0xFF9867:
Serial.println(" 100+ ");
break;

case 0xFFB04F:
Serial.println(" 200+ ");
break;

case 0xFF30CF:
{
Serial.println(" 1 ");
// analogWrite(leda, 255);
}
break;

case 0xFF18E7:
{
Serial.println(" 2 ");
// analogWrite(ledv, 255);
}
break;

case 0xFF7A85:
{
Serial.println(" 3 ");
// analogWrite(ledr, 255);
}
break;

case 0xFF10EF:
{
Serial.println(" 4 ");
// analogWrite(leda, 122);
}
break;

case 0xFF38C7:
{
Serial.println(" 5 ");
// analogWrite(ledv, 122);
}
break;

case 0xFF5AA5:
{
Serial.println(" 6 ");
// analogWrite(ledr, 122);
}
break;

case 0xFF42BD:
{
Serial.println(" 7 ");
// analogWrite(leda, 0);
}
break;

case 0xFF4AB5:
{
Serial.println(" 8 ");
// analogWrite(ledv, 0);
}
break;

case 0xFF52AD:
{
Serial.println(" 9 ");
// analogWrite(ledr, 0);
}
break;

default:
Serial.println(" other button ");

}

}

void blustuf()
{
incomingByte = Serial.read(); // read byte
if(incomingByte == '0') {
}
if(incomingByte == '1') {
}
if(incomingByte == '2') {
}
if(incomingByte == '3') {
}
if(incomingByte == '4') {
}
if(incomingByte == '5') {
}
if(incomingByte == '6') {
}
if(incomingByte == '7') {
}
if(incomingByte == 'a') { //step up
if (dim<127)
{
dim = dim + pas;
if (dim>127)
{
dim=128;
}
}
}

if(incomingByte == 's') { //step down
if (dim>5)
{
dim = dim - pas;
if (dim<0)
{
dim=0;
}
}
}

if(incomingByte == 'w') { // power is 100%
dim=0;
}
if(incomingByte == 'z') { // power is 0% (off)
dim=128;
}
}

void stelute()
{
if (dim2<1) lcd.print("----------------");
else
if (dim2<9) lcd.print("*---------------");
else
if (dim2<17) lcd.print("-*--------------");
else
if (dim2<25) lcd.print("--*-------------");
else
if (dim2<33) lcd.print("---*------------");
else
if (dim2<41) lcd.print("----*-----------");
else
if (dim2<49) lcd.print("-----*----------");
else
if (dim2<57) lcd.print("------*---------");
else
if (dim2<65) lcd.print("-------*--------");
else
if (dim2<73) lcd.print("--------*-------");
else
if (dim2<81) lcd.print("---------*------");
else
if (dim2<89) lcd.print("----------*-----");
else
if (dim2<97) lcd.print("-----------*----");
else
if (dim2<105) lcd.print("------------*---");
else
if (dim2<113) lcd.print("-------------*--");
else
if (dim2<121) lcd.print("--------------*-");
else
if (dim2>127) lcd.print("---------------*");
}


void loop() {
digitalWrite(buton1, HIGH);
digitalWrite(buton2, HIGH);

if (Serial.available() > 0) blustuf(); // if bluetooth is present

if (digitalRead(buton1) == LOW)
{
if (dim<127)
{
dim = dim + pas;
if (dim>127)
{
dim=128; // in vechiul sketch era 127
}
}
}
if (digitalRead(buton2) == LOW)
{
if (dim>5)
{
dim = dim - pas;
if (dim<0)
{
dim=0; // in vechiul sketch era 1
}
}
}
while (digitalRead(buton1) == LOW) { }
delay(10); // waiting little bit...
while (digitalRead(buton2) == LOW) { }
delay(10); // waiting little bit...


// remote
if (irrecv.decode(&results)) // have we received an IR signal?
{
translateIR();
irrecv.resume(); // receive the next value
}

delay (100);
lcd.setCursor(2, 0); // put cursor at colon 0 and row 0
lcd.print("power is "); // print a text
lcd.print(100*(128-dim)/128);
lcd.print("% "); // print a text

lcd.setCursor(0, 1); // put cursor at colon 0 and row 1

dim2=128-dim; // variable use for graphics
stelute();
}

You might also like