Go Down

Topic: Proyecto 2 atmega328p por spi (Read 256 times) previous topic - next topic

tolemaxdream

Aug 05, 2017, 09:14 pm Last Edit: Aug 06, 2017, 12:06 am by surbyte Reason: Las imagenes deben verse. Usa etiqueta. Lee las normas
hola, estoy un poco desorientado de como seguir, aprendo solo estuve buscando varias cosas por google pero no me sacan ciertas dudas con referente al proyecto ya que lo lleve a una complejidad que me sobrepaso, es tanto el esp8266 como la comunicacion spi entre dos arduinos, tanto crear que me lanze de una hacer este proyecto sin saber nada hace alrededor de 2 años me entere lo que era arduino y el mundo relacionado consigo.
imagen de mi primera PCB yo se que se ve desprolija pero me asegure que sus pistas no se puenten con el tester,  asi que fea pero funcional.
el codigo basicamente es esto
Code: [Select]

//#include <SPI.h>                   //libreria comunicaciion SPI
#include <TimeLib.h>               //libreria tiempo
#include <TimeAlarms.h>            // libreria tiempo alarmas
#include <Wire.h>                  // comunicacion I2C libreria
#include "RTClib.h"                // Libreria RTC libre adafruit
#include <SoftwareSerial.h>        // libreria comunicaccion serial (wifi)
#include "DHT.h"                   // libreria DHT11 adafruit sensor de humedad y temperatura relativa del ambiente

#define DHTPIN 2                   //defino pin digital 2
#define DHTTYPE DHT11              //defino tipo de sensor
DHT dht(DHTPIN, DHTTYPE);

SoftwareSerial ESP_8266 =  SoftwareSerial(5, 4);     // RX | TX

RTC_DS1307 rtc;                    //modelos de RTC

char daysOfTheWeek[7][12] = {  "Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"};  //nombres para los dias de la semana

String apiKey = "DK59X5DLS04TVFG5";     // cambiar por el canal de THINGSpeak
String ssid="WIFI NAME";    // Wifi network SSID
String password ="WIFI PASSWORD";  // Wifi network password
boolean DEBUG=true;

int Buzzer = 9;                    //Buezzer pin 9 PWNM
int Relay_01 = 6;                  // Relays
int Relay_02 = 7;
int Relay_03 = 8;
const int LM35_A = A0;             //sensor de temperatura onboar
const int LM35_B = A1;
const int FC_28 = A2;              //sensor de humedad relativa del suelo
const int LDR = A3;                //Fotosensor o Fotoresistor

void setup() {
  Serial.begin(57600);             //inicia comunicacion serial PC
  Serial.println("Testeo A");

  dht.begin();                     //inicia DHT11
  //ESP8266.begin(9600);            //inicia ESP8266

  pinMode (Buzzer, OUTPUT);        //pines de salida
  pinMode (Relay_01, OUTPUT);
  pinMode (Relay_02, OUTPUT);
  pinMode (Relay_03, OUTPUT);
  pinMode (LM35_A, INPUT);         //pines de entrada
  pinMode (LM35_B, INPUT);
  pinMode (FC_28, INPUT);
  pinMode (LDR, INPUT);

  if (! rtc.begin()) {                 //inicia RTC en condicion
    Serial.println("RTC no se pudo encontrar");
  }

  if (! rtc.isrunning()) {
    Serial.println("RTC no esta funcionando");
    //rtc.adjust(DateTime(2017, 7, 29, 17, 14, 0)); //ajuste del RTC DS-1307
    //(Año, Mes, Dia, Hora, Minutos, Segundos)

  }
  //Alarm.alarmRepeat(5, 00, 0, Relay0001ON);           //alarmas
  //Alarm.alarmRepeat(8, 00, 0, Relay001ON);
  //Alarm.alarmRepeat(11, 00, 0, Relay01ON);
  //Alarm.alarmRepeat(17, 00, 0, Relay01OFF);
  //Alarm.alarmRepeat(20, 00, 0, Relay001OFF);
  //Alarm.alarmRepeat(23, 00, 0, Relay0001OFF);
  Alarm.alarmRepeat(18, 00, 0, Relay01ON);
  Alarm.alarmRepeat(18, 10, 0, Relay01OFF);
}
void loop() {
  LDRlectura();
  HRdSuelo ();
  LM35_Leyendo ();
  DHT_11Leyendo ();
  Reloj ();
  Alarm.delay(5000);
}
void LDRlectura() {
  const int ValorLDR1 = analogRead (LDR);
  const int ValorLDR2 = analogRead (LDR);
  const int ValorLDR3 = analogRead (LDR);
  const int ValorLDR4 = analogRead (LDR);
  const int ValorLDR5 = analogRead (LDR);
  const int ValorLDR6 = analogRead (LDR);
  const int ValorLDR7 = analogRead (LDR);
  const int ValorLDR8 = analogRead (LDR);
  const int ValorLDR9 = analogRead (LDR);
  const int ValorLDR0 = analogRead (LDR);
  const int ValorLDR = (ValorLDR0 + ValorLDR1 + ValorLDR2 + ValorLDR3 + ValorLDR4 + ValorLDR5 + ValorLDR6 + ValorLDR7 + ValorLDR8 + ValorLDR9) / 10;
  Serial.println("Lectura del LDR");
  Serial.println(ValorLDR);
}
void HRdSuelo() {
  const int HRDS = analogRead (FC_28);
  Serial.println("Lectura de humedad relativa del suelo");
  Serial.println(HRDS);
}
void LM35_Leyendo() {
  const int Temp01 = analogRead (LM35_A);
  const int Temp02 = analogRead (LM35_A);
  const int Temp03 = analogRead (LM35_A);
  const int Temp04 = analogRead (LM35_A);
  const int Temp05 = analogRead (LM35_A);
  const int Temp06 = analogRead (LM35_A);
  const int Temp07 = analogRead (LM35_A);
  const int Temp08 = analogRead (LM35_A);
  const int Temp09 = analogRead (LM35_A);
  const int Temp10 = analogRead (LM35_A);
  const int Temp1 = (Temp01 + Temp02 + Temp03 + Temp04 + Temp05 + Temp06 + Temp07 + Temp08 + Temp09 + Temp10) / 10;
  const int TEMP01 = analogRead (LM35_B);
  const int TEMP02 = analogRead (LM35_B);
  const int TEMP03 = analogRead (LM35_B);
  const int TEMP04 = analogRead (LM35_B);
  const int TEMP05 = analogRead (LM35_B);
  const int TEMP06 = analogRead (LM35_B);
  const int TEMP07 = analogRead (LM35_B);
  const int TEMP08 = analogRead (LM35_B);
  const int TEMP09 = analogRead (LM35_B);
  const int TEMP10 = analogRead (LM35_B);
  const int Temp2 = (TEMP01 + TEMP02 + TEMP03 + TEMP04 + TEMP05 + TEMP06 + TEMP07 + TEMP08 + TEMP09 + TEMP10) + 10;
  Serial.println("Lectura de temperatura ONBOARD");
  Serial.println(Temp1);
  Serial.println("Lectura de temperatura ONBOARD_02");
  Serial.println(Temp2);

}
void DHT_11Leyendo() {
  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("Fallo al leer el sensor DHT11");
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  //float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  //float hic = dht.computeHeatIndex(t, h, false);

  Serial.print("Humedad: ");
  Serial.print(h);
  Serial.print(" %");
  Serial.print("Temperatura: ");
  Serial.print(t);
  Serial.print(" *C ");
  //Serial.print(f);
  //Serial.print(" *F");
  //Serial.print("Heat index: ");
  //Serial.print(hic);
  //Serial.print(" *C ");
  //Serial.print(hif);
  //Serial.println(" *F");
}
void Reloj () {
  DateTime now = rtc.now();
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.print(now.day(), DEC);
  Serial.print(" (");
  Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
  Serial.print(") ");
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();
}
void Relay01ON () {
  digitalWrite (Relay_01, HIGH);
  Serial.println("Luz Prendida");
}

void Relay01OFF () {
  digitalWrite (Relay_01, LOW);
  Serial.println("Luz Apagada");
}



El arduino B
Code: [Select]
//#include <SPI.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

int led01= 8;
int led02= 9;
int led03= A4;
int Boton01= A0;
int Boton02= A1;
int Boton03= A2;
int Boton04= A3;

void setup() {
  pinMode(Boton01, INPUT);
  pinMode(Boton02, INPUT);
  pinMode(Boton03, INPUT);
  pinMode(Boton04, INPUT);
  pinMode(led01, OUTPUT);
  pinMode(led02, OUTPUT);
  pinMode(led03, OUTPUT);
  lcd.begin(16, 2);
}

void loop() {
  lcd.setCursor(0, 1);
  lcd.print("hello, world!");
}



no se si se comprende pero la idea es que el lcd 16x2 leds y botones esten conectados a mi atmega328  B (esclavo) y El atmega328 A sea el que interactue con los sensores y relays ademas de una comunicacion serial por el conversor USB y WIFI ESP8266.
cuando empece analizar el codigo del esclavo no pude comprender como hacer para el server reciba el dato de los botones asi cambiar de rutina con el relay, y que el esclavo reciba el dato del RTC1307 (por i2c al Server)  para mostrarlo en el LCD.
si no se comprende la pregunta diganme


surbyte

Como comunicas Arduino A con B?

tolemaxdream

por el momento no estan comunicados, pero seria por SPI
pin 19   SCK      (digital 13)     a pin 19     
pin 18   MISO    (digital 12)     a pin 17
pin 17   MOSI    (digital 11)     a pin 18
pin 16   SS        (digital 10)     a pin 16
estuve trabajando el codigo por lo que ahora es  un poco diferente
pero la conducta que quiero lograr seria la misma

surbyte

y porque por SPI?
Necesitas velocidad, algo especial?

Digo porque tienes antes que nada el simple Serial, lo probaste?

tolemaxdream

se me ocurrio SPI por que si jajaja, me pareció lo mejor ya que al puerto serial esta el conversor USB.. esto no influye en nada?
lo comunico igual?

surbyte

Que pasa con SoftwareSerial o con I2C?
Bueno de todos modos tiene que funcionar con SPI.

surbyte

No hay comunicación SPI en tus códigos.

Esta rutina void LM35_Leyendo() tiene una forma curiosa de promediar valores
Code: [Select]
const int Temp01 = analogRead (LM35_A);, normalmente se hace con ciclos.

Acabo de tenrminar un código, prueba a ver si compila.

Code: [Select]
#include <SPI.h>                   //libreria comunicaciion SPI
#include <TimeLib.h>               //libreria tiempo
#include <TimeAlarms.h>            // libreria tiempo alarmas
#include <Wire.h>                  // comunicacion I2C libreria
#include "RTClib.h"                // Libreria RTC libre adafruit
#include <SoftwareSerial.h>        // libreria comunicaccion serial (wifi)
#include "DHT.h"                   // libreria DHT11 adafruit sensor de humedad y temperatura relativa del ambiente

# define SS        10              // pin Chip Select Arduino A
#define DHTPIN      2              //defino pin digital 2
#define DHTTYPE DHT11              //defino tipo de sensor
DHT dht(DHTPIN, DHTTYPE);

SoftwareSerial ESP_8266 =  SoftwareSerial(5, 4);     // RX | TX

RTC_DS1307 rtc;                    //modelos de RTC

char daysOfTheWeek[7][12] = {"Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"};  //nombres para los dias de la semana

String apiKey   = "DK59X5DLS04TVFG5";     // cambiar por el canal de THINGSpeak
String ssid     = "WIFI NAME";    // Wifi network SSID
String password = "WIFI PASSWORD";  // Wifi network password
boolean DEBUG   = true;

int Buzzer          = 9;                    //Buezzer pin 9 PWNM
int Relay_01        = 6;                  // Relays
int Relay_02        = 7;
int Relay_03        = 8;
const byte LM35_A  = A0;             //sensor de temperatura onboar
const byte LM35_B  = A1;
const byte FC_28   = A2;              //sensor de humedad relativa del suelo
const byte LDR     = A3;                //Fotosensor o Fotoresistor
int ValorLDR, HRDS, Temp1, Temp2 ;
int h, t;

void setup() {
  Serial.begin(57600);             //inicia comunicacion serial PC
  Serial.println("Testeo A");

  dht.begin();                     //inicia DHT11
  //ESP8266.begin(9600);            //inicia ESP8266

  pinMode (Buzzer, OUTPUT);        //pines de salida
  pinMode (Relay_01, OUTPUT);
  pinMode (Relay_02, OUTPUT);
  pinMode (Relay_03, OUTPUT);
  pinMode (LM35_A, INPUT);         //pines de entrada
  pinMode (LM35_B, INPUT);
  pinMode (FC_28, INPUT);
  pinMode (LDR, INPUT);

  if (! rtc.begin()) {                 //inicia RTC en condicion
    Serial.println("RTC no se pudo encontrar");
  }

  if (! rtc.isrunning()) {
    Serial.println("RTC no esta funcionando");
    //rtc.adjust(DateTime(2017, 7, 29, 17, 14, 0)); //ajuste del RTC DS-1307
    //(Año, Mes, Dia, Hora, Minutos, Segundos)

  }
  Alarm.alarmRepeat(18, 00, 0, Relay01ON);
  Alarm.alarmRepeat(18, 10, 0, Relay01OFF);
  digitalWrite(SS, HIGH);  // ensure SS stays high for now
   // Put SCK, MOSI, SS pins into output mode
  // also put SCK, MOSI into LOW state, and SS into HIGH state.
  // Then put SPI hardware into Master mode and turn SPI on
  SPI.begin ();

  // Slow down the master a bit
  SPI.setClockDivider(SPI_CLOCK_DIV8);
}
void loop() {
  LDRlectura();
  HRdSuelo();
  LM35_Leyendo();
  DHT_11Leyendo();
  // enable Slave Select
  digitalWrite(SS, LOW);    // SS is pin 10

  // send test string
  char buffer[30], str1[6], str2[6];
  sprintf(buffer, "%4d %2d %2d %2d %2d", ValorLDR, Temp1, Temp2, h, t);
  for (const char * p = buffer; c = *p; p++)
    SPI.transfer (c);
  // disable Slave Select
  digitalWrite(SS, HIGH);

  Reloj();
  Alarm.delay(5000);
}
void LDRlectura() {
  int sumaLDR = 0;
  for (byte i=0; i<10; i++) {
      sumaLDR += analogRead(LDR);
  }
  ValorLDR = sumaLDR/10;
  Serial.println("Lectura del LDR");
  Serial.println(ValorLDR);
}
void HRdSuelo() {
  HRDS = analogRead(FC_28);
  Serial.println("Lectura de humedad relativa del suelo");
  Serial.println(HRDS);
}
void LM35_Leyendo() {
  int sumaTemp1 = 0;
  int sumaTemp2 = 0;

  for (byte i=0; i<10; i++) {
      sumaTemp1 += analogRead(LM35_A);
      sumaTemp2 += analogRead(LM35_B);
  }
  Temp1 = sumaTemp1/10;
  Temp2 = sumaTemp2/10;
 
  Serial.println("Lectura de temperatura ONBOARD");
  Serial.println(Temp1);
  Serial.println("Lectura de temperatura ONBOARD_02");
  Serial.println(Temp2);

}

void DHT_11Leyendo() {
  h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  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("Fallo al leer el sensor DHT11");
    return;
  }

  // Compute heat index in Fahrenheit (the default)
  //float hif = dht.computeHeatIndex(f, h);
  // Compute heat index in Celsius (isFahreheit = false)
  //float hic = dht.computeHeatIndex(t, h, false);

  Serial.print("Humedad: ");
  Serial.print(h);
  Serial.print(" %");
  Serial.print("Temperatura: ");
  Serial.print(t);
  Serial.print(" *C ");
}

void Reloj () {
  DateTime now = rtc.now();
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.print(now.day(), DEC);
  Serial.print(" (");
  Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
  Serial.print(") ");
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();
}

void Relay01ON () {
  digitalWrite (Relay_01, HIGH);
  Serial.println("Luz Prendida");
}

void Relay01OFF () {
  digitalWrite (Relay_01, LOW);
  Serial.println("Luz Apagada");
}


Tiene incorporado el uso de la transferencia SPI
Mañana hago el esclavo

tolemaxdream

 La verdad que no se a que te referís con ciclo (PERDÓN NO SE MUCHO), pero imagino que debe ser algo mucho mas comodo que lo que hice en la rutina  LM35_Leyendo(), basándome en lo que se hice un simple promedio de 10 lecturas.
 La verdad no ahí palabras para transmitir lo que siento en este momento por ti, espero que le guste que le diga amigo y maestro, (senpai), por cierto mi nombre de pila es Javier. Todavía no mire el código , ahora mismo lo voy a probar en el IDE a ver si copila y esto igual es mas de lo que esperaba, me voy a tomar un tiempo tratando de entenderlo si tengo alguna duda de como lo empleas te pregunto.
 Gracias todos mis POST me los contestaste tu, ¡¡gracias otra vez!!

tolemaxdream

#8
Aug 09, 2017, 03:51 am Last Edit: Aug 09, 2017, 06:31 pm by tolemaxdream
  Hice algunas modificaciones al codigo, (que interesante los ciclos), agregue unas llaves a la función FOR  y dos constantes  INT "c , p" por que no copilaba IDE creo que así lo solucione.
  Excluí el SoftwareSerial.h para no hacer desastres por el momento me dedico al mundo del SPI que por lo que veo es mas difícil, al marguen vengo entendiendo mejor el modulo ESP8266 con sus comandos AT. El código quedo así, por el momento del  maestro. Me gusta.

Code: [Select]

#include <SPI.h>                   //libreria comunicaciion SPI
//#include <SoftwareSerial.h>        // libreria comunicaccion serial (wifi)
#include <TimeLib.h>               //libreria tiempo
#include <TimeAlarms.h>            // libreria tiempo alarmas
#include <Wire.h>                  // comunicacion I2C libreria
#include <DS1307RTC.h>
#include "DHT.h"                   // libreria DHT11 adafruit sensor de humedad y temperatura relativa del ambiente

#define DHTPIN      2              //defino pin digital 2
#define DHTTYPE DHT11              //defino tipo de sensor
DHT dht(DHTPIN, DHTTYPE);

//SoftwareSerial ESP_8266 =  SoftwareSerial(5, 4);     // RX | TX
# define SS        10                                // pin Chip Select Arduino A

int Buzzer          = 9;                //Buezzer pin 9 PWNM
int Relay_01        = 6;                // Relays
int Relay_02        = 7;
int Relay_03        = 8;
const byte LM35_A  = A0;                //sensor de temperatura onboar
const byte LM35_B  = A1;
const byte FC_28   = A2;                //sensor de humedad relativa del suelo
const byte LDR     = A3;                //Fotosensor o Fotoresistor
int ValorLDR, HRDS, Temp1, Temp2 ;
int h, t, c, p;

void setup() {
  Serial.begin(57600);                             //inicia comunicacion serial PC
  Serial.println("Testeo A");
  dht.begin();                                    //inicia DHT11
  pinMode (Buzzer, OUTPUT);                       //pines de salida
  pinMode (Relay_01, OUTPUT);
  pinMode (Relay_02, OUTPUT);
  pinMode (Relay_03, OUTPUT);
  pinMode (LM35_A, INPUT);                        //pines de entrada
  pinMode (LM35_B, INPUT);
  pinMode (FC_28, INPUT);
  pinMode (LDR, INPUT);
  setSyncProvider(RTC.get);                       // Funcion para sincronizar RTC
  if (timeStatus() != timeSet) {
    Serial.println("Imposible sincronizar RTC");
  }
  else {
    Serial.println("RTC Sincronizado");
  }
  Alarm.alarmRepeat(18, 00, 0, Relay01ON);       //Alarmas
  Alarm.alarmRepeat(18, 10, 0, Relay01OFF);
  Alarm.timerRepeat(60, LDRlectura);
  Alarm.timerRepeat(60, HRdSuelo);
  Alarm.timerRepeat(30, LM35_Leyendo);
  Alarm.timerRepeat(120,  DHT_11Leyendo);

  digitalWrite(SS, HIGH);                        // ensure SS stays high for now
                                                 // Put SCK, MOSI, SS pins into output mode
                                                 // also put SCK, MOSI into LOW state, and SS into HIGH state.
                                                 // Then put SPI hardware into Master mode and turn SPI on
  SPI.begin ();
  SPI.setClockDivider(SPI_CLOCK_DIV8);           // Slow down the master a bit
  //ESP_8266.begin(57600);                       //inicia ESP8266
}
void loop() {
  if (timeStatus() == timeSet) {
    digitalClockDisplay();
  } else {
    Serial.println("The time has not been set.  Please run the Time");
    Serial.println("TimeRTCSet example, or DS1307RTC SetTime example.");
    Serial.println();
    Alarm.delay(4000);
  }
  digitalWrite(SS, LOW);                                                     // SS is pin 10
  char buffer[30], str1[6], str2[6];                                        // send test string
  sprintf(buffer, "%4d %2d %2d %2d %2d", ValorLDR, Temp1, Temp2, h, t);
  for (const char * p = buffer; c = *p; p++){
  SPI.transfer (c);                                                         // disable Slave Select
  digitalWrite(SS, HIGH);
  }
  Alarm.delay(1000);
}
void LDRlectura() {
  int sumaLDR = 0;
  for (byte i = 0; i < 10; i++) {
    sumaLDR += analogRead(LDR);
  }
  ValorLDR = sumaLDR / 10;
  Serial.print("Lectura del LDR");
  Serial.print(" ");
  Serial.print(ValorLDR);
  Serial.println();
}
void HRdSuelo() {
  HRDS = analogRead(FC_28);
  Serial.print("Humedad Relativa del Suelo");
  Serial.print(" ");
  Serial.print(HRDS);
  Serial.println();
}
void LM35_Leyendo() {
  int sumaTemp1 = 0;
  int sumaTemp2 = 0;
  for (byte i = 0; i < 10; i++) {
    sumaTemp1 += analogRead(LM35_A);
    sumaTemp2 += analogRead(LM35_B);
  }
  Temp1 = sumaTemp1 / 10;
  Temp2 = sumaTemp2 / 10;
  Serial.print("Temperatura ONBOARD");
  Serial.print(" ");
  Serial.print(Temp1);
  Serial.println();
  Serial.print("Temperatura ONBOARD_02");
  Serial.print(" ");
  Serial.print(Temp2);
  Serial.println();
}

void DHT_11Leyendo() {
  h = dht.readHumidity();
  t = dht.readTemperature();
  Serial.print("Humedad Relativa Ambiental: ");
  Serial.print(h);
  Serial.print(" %");
  Serial.println();
  Serial.print("Temperatura Relativa Ambiental: ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.println();
}

void digitalClockDisplay() {
  Serial.print(hour());
  printDigits(minute());
  printDigits(second());
  Serial.print(" ");
  Serial.print(day());
  Serial.print("/");
  Serial.print(month());
  Serial.print("/");
  Serial.print(year());
  Serial.println();
}

void printDigits(int digits) {
  Serial.print(":");
  if (digits < 10)
    Serial.print('0');
  Serial.print(digits);
}

void Relay01ON () {
  digitalWrite (Relay_01, HIGH);
  Serial.print("Luz Prendida");
  Serial.println();
}

void Relay01OFF () {
  digitalWrite (Relay_01, LOW);
  Serial.print("Luz Apagada");
  Serial.println();
}
[code]

tolemaxdream

#9
Aug 10, 2017, 06:26 pm Last Edit: Aug 23, 2017, 02:44 am by tolemaxdream
http://arduino-er.blogspot.com.ar/2014/09/communication-betweeen-arduinos-using.html estuve viendo esta pagina pero no comprendo como llega a eso valores en el esclavo

Go Up