witam .
posidam arduino mega 2560.
A także 2 płytki przekaznikowe po 8 przekazników.
Mój problem jest taki że gdy włączę płytkę i wgram program . to przekazniki zaczynają łapać i puszczać w pozycji wyłączonej jak by dostawały jakies obce sterowanie .
Nie mam pojęcia czy jest to błąd kodu czy bład zasilania bo połaczyłem raczej prawidłowo.
Oto kod programu:
będę wdzięczny za jaką kolwiek pomoc
Używamy "code" bo będę opornych nagradzał
posidam arduino mega 2560.
A także 2 płytki przekaznikowe po 8 przekazników.
Mój problem jest taki że gdy włączę płytkę i wgram program . to przekazniki zaczynają łapać i puszczać w pozycji wyłączonej jak by dostawały jakies obce sterowanie .
Nie mam pojęcia czy jest to błąd kodu czy bład zasilania bo połaczyłem raczej prawidłowo.
Oto kod programu:
Kod:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x2D };
byte gateway[] = { 192, 168, 0, 3 }; // <------- 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
IPAddress ip(192,168,0,199);
EthernetServer server(80);
// Pole przekazników 1 sterowane przez wwww
const int RELAY_CH1 = 22;
const int RELAY_CH2 = 24;
const int RELAY_CH3 = 26;
const int RELAY_CH4 = 28;
const int RELAY_CH5 = 30;
//Pole przekazników 2 sterowane przez przełączniki
const int RELAY_CH21 = 23;
const int RELAY_CH22 = 25;
const int RELAY_CH23 = 27;
const int RELAY_CH24 = 29;
const int RELAY_CH25 = 31;
const int RELAY_CH26 = 33;
const int RELAY_CH27 = 35;
const int RELAY_CH28 = 37;
//Pole przełączników 1
const int SWITCH_CH01 = 13;
const int SWITCH_CH02 = 12;
const int SWITCH_CH03 = 11;
const int SWITCH_CH04 = 10;
const int SWITCH_CH05 = 9;
const int SWITCH_CH06 = 8;
const int SWITCH_CH07 = 7;
const int SWITCH_CH08 = 6;
int buttonState_1 = 0;
int buttonState_2 = 0;
int buttonState_3 = 0;
int buttonState_4 = 0;
int buttonState_5 = 0;
int buttonState_6 = 0;
int buttonState_7 = 0;
int buttonState_8 = 0;
String readString;
void setup() {
// przekazniki wwww
pinMode(RELAY_CH1, OUTPUT);
digitalWrite(RELAY_CH1, HIGH); // światło nazewnątrz domu
pinMode(RELAY_CH2, OUTPUT);
digitalWrite(RELAY_CH2, HIGH); // światło nazewnątrz garażu
pinMode(RELAY_CH3, OUTPUT);
digitalWrite(RELAY_CH3, HIGH); // światło wjazdowe w garażu
pinMode(RELAY_CH4, OUTPUT);
digitalWrite(RELAY_CH4, HIGH); // oświetlenie robocze w garażu
pinMode(RELAY_CH5, OUTPUT);
digitalWrite(RELAY_CH5, HIGH); // switch on LED5
// przekazmiki sterowane przełącznikami
pinMode (RELAY_CH21, OUTPUT);
digitalWrite(RELAY_CH21, HIGH);
pinMode (RELAY_CH22, OUTPUT);
digitalWrite(RELAY_CH22, HIGH);
pinMode (RELAY_CH23, OUTPUT);
pinMode (RELAY_CH24, OUTPUT);
pinMode (RELAY_CH25, OUTPUT);
pinMode (RELAY_CH26, OUTPUT);
pinMode (RELAY_CH27, OUTPUT);
pinMode (RELAY_CH28, OUTPUT);
//Pole przełączników 1
pinMode (SWITCH_CH01, INPUT);
pinMode (SWITCH_CH02, INPUT);
pinMode (SWITCH_CH03, INPUT);
pinMode (SWITCH_CH04, INPUT);
pinMode (SWITCH_CH05, INPUT);
pinMode (SWITCH_CH06, INPUT);
pinMode (SWITCH_CH07, INPUT);
pinMode (SWITCH_CH08, INPUT);
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
// sterowanie przekaznikami z przycisków
buttonState_1 = digitalRead(SWITCH_CH01);
if (buttonState_1 == LOW) {
digitalWrite(RELAY_CH21, LOW);
} else {
digitalWrite(RELAY_CH21, HIGH);
}
buttonState_2 = digitalRead(SWITCH_CH02);
if (buttonState_2 == HIGH) {
digitalWrite(RELAY_CH22, LOW);
} else {
digitalWrite(RELAY_CH22, HIGH);
}
buttonState_3 = digitalRead(SWITCH_CH03);
if (buttonState_3 == HIGH) {
digitalWrite(RELAY_CH23, LOW);
} else {
digitalWrite(RELAY_CH23, HIGH);
}
buttonState_4 = digitalRead(SWITCH_CH04);
if (buttonState_4 == HIGH) {
digitalWrite(RELAY_CH24, LOW);
} else {
digitalWrite(RELAY_CH24, HIGH);
}
buttonState_5 = digitalRead(SWITCH_CH05);
if (buttonState_5 == HIGH) {
digitalWrite(RELAY_CH25, LOW);
} else {
digitalWrite(RELAY_CH25, HIGH);
}
buttonState_6 = digitalRead(SWITCH_CH06);
if (buttonState_6 == HIGH) {
digitalWrite(RELAY_CH26, LOW);
} else {
digitalWrite(RELAY_CH26, HIGH);
}
buttonState_7 = digitalRead(SWITCH_CH07);
if (buttonState_7 == HIGH) {
digitalWrite(RELAY_CH27, LOW);
} else {
digitalWrite(RELAY_CH27, HIGH);
}
buttonState_8 = digitalRead(SWITCH_CH08);
if (buttonState_8 == HIGH) {
digitalWrite(RELAY_CH28, LOW);
} else {
digitalWrite(RELAY_CH28, HIGH);
}
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 100) {
//store characters to string
readString += c; //Serial.print(c);
}
Serial.write(c);
// 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
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
client.println("Refresh: 3"); // refresh the page automatically every 5 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<HEAD>");
client.println("<meta name='apple-mobile-web-app-capable' content='yes' charset=iso-8859-2 />");
client.println("<meta name='apple-mobile-web-app-status-bar-style' content='black-translucent' />");
//client.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"http://www.digital2u.net/autohome.css\" />");
client.println("<meta http-equiv=\"refresh\" content=\"5;url=http://192.168.0.199/\"/>" );
client.println("</HEAD>");
client.println("<body bgcolor=\"#FFFFFF\">");
//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.print("<center> <p> <h1>witaj. Smart home v.1 </h1></p> ");
//client.println("<br />");
//client.println("<br />");
// Relay Status Display
client.println("<center>");
client.println("<table border=\"5\">");
client.println("<tr>");
if (!digitalRead(RELAY_CH1))
{
client.print("<td> <p style=\"font-family:arial;color:black;font-size:26px;\">światło na zewnątrz domu przełącznik 1.</p><p style=\"font-family:arial;color:green;font-size:35px;\">ON</p> </td>");
}
else
{
client.print("<td> <p style=\"font-family:arial;color:black;font-size:26px;\">światło na zewnątrz domu przełącznik 1.</p><p style=\"font-family:arial;color:red;font-size:35px;\">OFF</p></td>");
}
if (!digitalRead(RELAY_CH2))
{
client.print("<td> <p style=\"font-family:arial;color:black;font-size:26px;\">światło nazewnątrz garażu przełącznik 2.</p><p style=\"font-family:arial;color:green;font-size:35px;\">ON</p></td>");
}
else
{
client.print("<td> <p style=\"font-family:arial;color:black;font-size:26px;\">światło nazewnątrz garażu przełącznik 2.</p><p style=\"font-family:arial;color:red;font-size:35px;\">OFF</p></td>");
}
if (!digitalRead(RELAY_CH3))
{
client.print("<td><p style=\"font-family:arial;color:black;font-size:26px;\">światło wjazdowe w garażu rzełącznik 3.</p><p style=\"font-family:arial;color:green;font-size:35px;\">ON</p></td>");
}
else
{
client.print("<td><p style=\"font-family:arial;color:black;font-size:26px;\">światło wjazdowe w garaż przełącznik 3.</p><p style=\"font-family:arial;color:red;font-size:35px;\">OFF</p></td>");
}
if (!digitalRead(RELAY_CH4))
{
client.print("<td><p style=\"font-family:arial;color:black;font-size:26px;\">światło robocze w garażu przełącznik 4.</p><p style=\"font-family:arial;color:green;font-size:35px;\">ON</p></td>");
}
else
{
client.print("<td><p style=\"font-family:arial;color:black;font-size:26px;\">światło robocze w garażu przełącznik 4.</p><p style=\"font-family:arial;color:red;font-size:35px;\">OFF</p></td>");
}
if (!digitalRead(RELAY_CH5))
{
client.print("<td><p style=\"font-family:arial;color:black;font-size:26px;\">Device 5.</p><p style=\"font-family:arial;color:green;font-size:35px;\">ON</p></td>");
}
else
{
client.print("<td><p style=\"font-family:arial;color:black;font-size:26px;\">Device 5.</p><p style=\"font-family:arial;color:red;font-size:35px;\">OFF</p></td>");
}
client.println("</tr>");
client.println("</table>");
client.println("</center>");
client.println("<br />");
/* Relay Control Code */
client.println("<a href=\"/?relay1on\"\"> <button style=\"width:360px;height:120px\"> <font size=\"7\"; color:red ;>przełącznik 1 ON </font> </button> </a> ");
client.println("<a href=\"/?relay1off\"\"> <button style=\"width:360px;height:120px\"> <font size=\"7\">przełącznik 1 OFF </font> </button> </a> <br />");
client.println("<br />");
client.println("<a href=\"/?relay2on\"\"> <button style=\"width:360px;height:120px\"> <font size=\"7\">przełącznik 2 ON </font> </button> </a> ");
client.println("<a href=\"/?relay2off\"\"> <button style=\"width:360px;height:120px\"> <font size=\"7\">przełącznik 2 OFF </font> </button> </a> <br />");
client.println("<br />");
client.println("<a href=\"/?relay3on\"\"> <button style=\"width:360px;height:120px\"> <font size=\"7\">przełącznik 3 ON </font> </button> </a> ");
client.println("<a href=\"/?relay3off\"\"> <button style=\"width:360px;height:120px\"> <font size=\"7\">przełącznik 3 OFF </font> </button> </a> <br />");
client.println("<br />");
client.println("<a href=\"/?relay4on\"\"> <button style=\"width:360px;height:120px\"> <font size=\"7\">przełącznik 4 ON </font> </button> </a> ");
client.println("<a href=\"/?relay4off\"\"> <button style=\"width:360px;height:120px\"> <font size=\"7\">przełącznik 4 OFF </font> </button> </a> <br />");
client.println("<br />");
client.println("<a href=\"/?relay5on\"\"> <button style=\"width:360px;height:120px\"> <font size=\"7\">przełącznik 5 ON </font> </button> </a> ");
client.println("<a href=\"/?relay5off\"\"><button style=\"width:360px;height:120px\"> <font size=\"7\">przełącznik 5 OFF </font> </button> </a> <br />");
client.println("<br />");
// control arduino pin via ethernet Start //
if(readString.indexOf("?relay1on") >0)//checks for on
{
digitalWrite(RELAY_CH1, LOW); // 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(RELAY_CH1, HIGH); // 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(RELAY_CH2, LOW); // 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("?relay2off") >0)//checks for off
{
digitalWrite(RELAY_CH2, HIGH); // 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("?relay3on") >0)//checks for on
{
digitalWrite(RELAY_CH3, LOW); // 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("?relay3off") >0)//checks for off
{
digitalWrite(RELAY_CH3, HIGH); // 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("?relay4on") >0)//checks for on
{
digitalWrite(RELAY_CH4, LOW); // 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("?relay4off") >0)//checks for off
{
digitalWrite(RELAY_CH4, HIGH); // 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("?relay5on") >0)//checks for on
{
digitalWrite(RELAY_CH5, LOW); // 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("?relay5off") >0)//checks for off
{
digitalWrite(RELAY_CH5, HIGH); // 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 />");
}
}
// INPUT
// output the value of each analog input pin
//for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
// int sensorReading = analogRead(analogChannel);
// client.print("analog input ");
// client.print(analogChannel);
// client.print(" is ");
// client.print(sensorReading);
// client.println("<br />");
//}
readString="";
client.println("</body>");
client.println("</html>");
break;
}// if ( c == \n )
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);
//client.println("<meta http-equiv=\"refresh\" content=\"10;url=http://192.168.0.199/\"/>" );
// close the connection:
client.stop();
Serial.println("client disonnected");
}//if(Client)
}//Loop
będę wdzięczny za jaką kolwiek pomoc
Używamy "code" bo będę opornych nagradzał