Lab. 15

Descripción del Laboratorio:

Veremos como a través de un Ethernet Shield, se diseña una interfaz Web que permita señalar en grados la posición de un servo movido a través de un potenciometro.

Lista de los Elementos utilizados:
  • Una (1) Protoboard
  • Un (1) Ethernet Shield
  • Un (1) Servo
  • Un (1) Potenciometro de 1kOhm
  • Un (1) Arduino UNO
  • Cable UTP

Diagrama del Montaje en la Protoboard:




Diagrama Esquemático del Circuito:


Fotos del Montaje (paso a paso):

- Paso UNO: 
Escoger los elementos a implementar,

- Para este caso usaremos:
Ethernet Shild


Servo
Y Potenciometro

- Paso DOS:
Se conecta la Ethernet Shild al Arduino,




- Paso DOS:
Se cablea el servo, el potenciometro y la LCD Shild.



!Eureka¡ a Probar...

deo del Funcionamiento:

 


Código Fuente en Arduino:

3 comentarios:

  1. File dafile = SD.open("datalog.txt",FILE_WRITE);
    dafile.print(",");
    dafile.println (dataString);
    dafile.close();
    Serial.println(dataString);
    }
    }
    variablesegundos = minute();
    if (variablesegundos == F)
    {
    dataString += String("Fin d riego Sd Card");
    dataString +=",";
    dataString += String(String(hour()) + ":" + String(minute()) + ":" + String(second()));
    dataString +=",";

    File dafile = SD.open("datalog.txt",FILE_WRITE);
    dafile.print(",");
    dafile.println (dataString);
    dafile.close();
    Serial.println(dataString);

    }
    } }
    boolean esHoraRiego()
    {
    momentoInicio = (horaInicio * 60)+ minutoInicio;
    int momentoFin = (horaFin * 60)+ minutoFin;
    int momentoAhora = (hour() * 60)+ minute();

    if((momentoInicio <= momentoAhora) && (momentoAhora < momentoFin))
    {
    return true;
    }
    else
    {
    return false;
    }
    }

    ResponderEliminar
  2. #include
    #include
    #include
    #include

    LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
    int EVpin = 9; //Puerto de salida de encendido Bomba
    int EVpinn = 8; //Puerto de salida de Sd
    int momentoInicio;
    char variableminutosI;
    char variablesegundos;
    char variablesegundoss;
    const int chipSelect = 10;
    int I = 0;
    int F = 3;
    byte horaInicio = 8, minutoInicio = I;
    byte horaFin = 8, minutoFin = F;
    int variableSd =0;
    String dataString="";
    void setup()

    {
    pinMode (EVpin, OUTPUT);
    pinMode (EVpinn, OUTPUT); //salida Sd
    Serial.begin(9600);
    setTime(7,59,00,03,06,2015); //hora y fecha
    lcd.begin(16,2);
    lcd.print("Sistema de Riego");
    lcd.setCursor(0,1);
    lcd.print("Inicializando.");
    delay(1000);
    lcd.clear();
    lcd.setCursor(0,1);
    lcd.print("Inicializando..");
    delay(1000);
    lcd.clear();
    lcd.setCursor(0,1);
    lcd.print("Inicializando...");
    delay(3000);
    lcd.clear();
    {
    Serial.println(" Comprobando Sd");
    pinMode(chipSelect,OUTPUT);
    lcd.print(" Comprobando SD");
    delay(3000);
    lcd.clear();
    if(!SD.begin(chipSelect))
    {
    Serial.println("Fallo de inicializando Sd Card ... ");// verificando la Sd Card
    lcd.print("Fallo Sd Card ... ");
    delay(2000);
    lcd.clear();
    return;
    }
    Serial.println("Inicializando Sd Card correcta ... "); // verificando la Sd Card
    lcd.print("Sd Card correcta ... ");
    delay(2000);
    lcd.clear();
    }
    }
    void loop()
    {
    //condicion de encendido de bomba
    lcd.setCursor(0,0);
    Serial.print("Son las:");
    lcd.print("Son Las");
    lcd.setCursor(9,0);
    Serial.println(String(hour()) + ":" + String(minute()) + ":" + String(second()));
    lcd.print(String(hour()) + ":" + String(minute()) + ":" + String(second()));
    if(esHoraRiego())
    {
    lcd.setCursor(0,1); //posicion lcd Es Hora de Riego
    Serial.println("Es hora de Riego");
    lcd.println("Es hora de Riego");
    digitalWrite (EVpin, HIGH);//Encienda Bomba
    }
    else
    {
    lcd.setCursor(0,1); //posicion lcd NO es Hora de Riego
    Serial.println("No es hora de Riego");
    lcd.print("Riego en descanso");
    digitalWrite (EVpin, LOW); //Apague Bomba
    }
    delay(1000);
    sdcard();
    }
    void sdcard()

    {
    variableSd = digitalRead(9);
    if (variableSd == 1)

    {

    for (int I=0; I<60; I+3) new cambbio
    // for (F=3; F<60; F++)

    {
    variableminutosI = minute(),variablesegundoss = second();
    if ((variableminutosI == I) && (variablesegundoss == 1))

    {
    dataString += String("Inicio riego Sd Card");
    dataString +=",";
    dataString += String(String(hour()) + ":" + String(minute()) + ":" + String(second()));
    dataString +=",";

    ResponderEliminar
  3. ayuda no c como poder incrementar los valores en este el encendido de la bomba para el riego en necesito sugerencias

    ResponderEliminar