Loading...
  Show Posts
Pages: 1 2 3 [4] 5 6
46  International / Español / Re: Ethernet o WiFi Shield directo a la red. on: January 03, 2012, 11:42:38 am
Con una ethernet configuras la MAC del arduino, la IP, el gateway... o (creo, a esto ya no llego) por DHCP.
47  International / Español / Re: Proyecto de Atmósfera Controlada. Sensor DHT22 + Reles on: January 03, 2012, 08:58:41 am
El While(true) va a hacer que nunca salga de ese bucle, yo quitaría el while, las instrucciones se encuentran dentro del loop, así que harás el if siempre.
Code:
// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain

#include "DHT.h"
#include <LiquidCrystal.h>

//// CODIGO SENSOR DE HUMEDAD Y TEMPERATURA DHT22

#define DHTPIN 7     // what pin we're connected to

#define DHTTYPE DHT22   // DHT 22  (AM2302)


// Connect pin 1 (on the left) of the sensor to +5V
// Connect pin 2 of the sensor to whatever your DHTPIN is
// Connect pin 4 (on the right) of the sensor to GROUND


DHT dht(DHTPIN, DHTTYPE);

//// CODIGO LCD


//  LCD RS pin to digital pin 12
//  LCD Enable pin to digital pin 11
//  LCD D4 pin to digital pin 5
//  LCD D5 pin to digital pin 4
//  LCD D6 pin to digital pin 3
//  LCD D7 pin to digital pin 2
//  LCD R/W pin to ground
//  10K resistor:
//  ends to +5V and ground
//  wiper to LCD VO pin (pin 3)

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// RELE
int rele1 = 8;                 // PIN al que va conectado el relé

void setup() {
  Serial.begin(9600);
  Serial.println("DHT22 test!");

  lcd.begin(16, 2);
  lcd.print("DHT22 test!");

  dht.begin();

  pinMode(rele1, OUTPUT);

}

void loop() {
  // 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();
  float t = dht.readTemperature();

  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t) || isnan(h)) {
    Serial.println("Fallo al leer el sensor");
    lcd.print("Fallo al leer el sensor");

  }
  else {
    Serial.print("Humedad: ");
    Serial.print(h);
    Serial.print(" %\t");
    Serial.print("Temperatura: ");
    Serial.print(t);
    Serial.println(" *C");
    lcd.setCursor(0, 0);
    lcd.print("Humedad: ");
    lcd.print(h);
    lcd.print(" %\t");
    lcd.setCursor(0,1);
    lcd.print("Temp:   ");
    lcd.print(t);
    lcd.print(" *C");

  }
   
   

    if (t < 24.00)
    {
          digitalWrite(rele1, HIGH);
               
    }
    else digitalWrite(rele1, LOW);

}
48  International / Español / Re: Como detengo esta parte on: December 31, 2011, 01:08:18 pm
En verdad está bien tenerlos en los analógicos, puedes meter un montón de pulsadores.
49  International / Español / Re: Como detengo esta parte on: December 30, 2011, 06:15:17 pm
Según el código lo tiene (o debería tenerlo) en el 2 digital.
50  International / Español / Re: Como detengo esta parte on: December 29, 2011, 08:58:30 pm
Creo que no acabo de entenderte, ¿quieres que haga el blink hasta que pulses el trigger para que deje de hacerlo y se quede encendido el pin 13?
En un post anterior, puse un código que permite dejar encendido/apagado un led, usando una variable de estado para la pulsación, quizás es eso lo que buscas pero con el blink. http://arduino.cc/forum/index.php/topic,84268.msg631923.html#msg631923
51  International / Español / Re: Como detengo esta parte on: December 29, 2011, 08:40:00 pm
Ahí tienes puesto que cuando trigger sea LOW, pondrá el pin 13 en HIGH. Lo tienes justo al revés de lo que creo que quieres.
52  International / Español / Re: ¿Ejecutar codigo una sola vez? on: December 29, 2011, 05:22:36 pm
Lo que estás haciendo es asignar el valor 0 a "var" cada vez que repites el loop y, por tanto, repitiendo el blink siempre.
Pon "int var = 0;" en setup o, como dice ionhs, ponlo todo en setup.

Una forma para verlo claro es crearte el blink como una función void, por ejemplo;
Code:
void setup() {               
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(13, OUTPUT);     
  blink();
  blink();
}

void loop()
{}
void blink(){
  digitalWrite(13, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(1000);              // wait for a second
  digitalWrite(13, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(1000);              // wait for a second
}
53  International / Español / Re: Duda rápida pulsador on: December 23, 2011, 07:28:32 am
Cierto roca, pero tendrías que pulsar el botón millones de veces, no se yo si el botón lo resisitiría  smiley-mr-green

Tu forma sería más correcta, sí señor.

Edito; me he dejado un detalle que quizás es relevante, un delay, para que de tiempo a quitar el dedo del botón:
Code:
const int buttonPin = 8;
const int ledPin =  13;
int estado = 0;

void setup() {
  pinMode(ledPin, OUTPUT);     
  pinMode(buttonPin, INPUT);     
}

void loop(){
  if (digitalRead(buttonPin) == HIGH) {
    delay(500);
    if(estado)
        digitalWrite(ledPin, HIGH);
   else
        digitalWrite(ledPin, LOW);
   estado = ~estado;
  }
}
54  International / Español / Re: Duda rápida pulsador on: December 23, 2011, 06:36:23 am
He probado lo de estado ~=estado y no me funciona, cámbialo por estado = !estado;

Te explico el código;
Code:
int estado =0 //comprobador de estado (para encendido/apagado)
setup(){
...
}
void loop(){
 buttonState = digitalRead(buttonPin); //lectura del botón, si esta pulsado entrará
  if (buttonState == HIGH) {
    if(estado) //comprueba el valor de estado (1 o 0) encendido o apagado
        digitalWrite(ledPin, HIGH);
   else
        digitalWrite(ledPin, LOW);
   estado = !estado; //niega el valor de estado, si era 1, pasa a ser 0 y viceversa
  }
}

En la otra forma que te decía, en lugar de negar el valor de estado, le va sumando 1 y comprueba si el valor es par o impar, para decidir si encender o apagar el led
Code:
int estado =0
setup(){
...
}
void loop(){
 buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {
    if(estado%2==0) //comprueba si estado es par o impar, si es par enciende el led
        digitalWrite(ledPin, HIGH);
   else //si es impar, apaga el led
        digitalWrite(ledPin, LOW);
   estado++; //estado va acumulando el valor de 1 en 1 (par e impar) para las siguientes comprobaciones
  }
}
55  International / Español / Re: Duda rápida pulsador on: December 22, 2011, 05:20:36 pm
la línea de estado ~= estado; no la he probado, no se si funcionaría, espero que sí.
Si no funciona, puedes usar este otro método;
Code:
...
if( estado%2 != 0)
...
estado++;
...
56  International / Español / Re: Duda rápida pulsador on: December 22, 2011, 03:15:48 pm
Tienes que crearte un registro para saber en qué estado está el led, y luego variar su estado en cada pulsación, algo así;
Code:
int estado =0
setup(){
...
}
void loop(){
 buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {
    if(estado)
        digitalWrite(ledPin, HIGH);
   else
        digitalWrite(ledPin, LOW);
   estado ~= estado;
  }
}
57  International / Español / Re: Integrados L293NE y L293DNE on: December 14, 2011, 06:46:45 am
Asegurate de que usas solo uno de los dos pines para la dirección del motor y el otro lo pones a GND, si no, se quedará bloqueado y/o puede que frías el integrado.
Por ejemplo;


Tomando el lado de los pines 1 a 8, si pones A (pin2) en modo HIGH (6V), pon B(pin7) en modo LOW (GND). Esos pines son los que indican la dirección en que debe girar el motor (explicado a grosso modo). Si pones uno a '1', el otro debe tener '0'.

Hay tablas que indican la dirección de los motores:
A B descripción
0 0 motores parados
0 1 giro derecha
1 0 giro izquierda
1 1 motores parados (en algunos casos ponen que no llegues nunca ahí, porque puedes quemar el integrado)
58  International / Español / Re: Integrados L293NE y L293DNE on: December 13, 2011, 06:24:39 pm
Voy a hacerme un poco de autobombo, espero que no me fusiléis  smiley-mr-green

mírate esto http://www.pepechorva.com/electronica/38-arduino/52-control-de-velocidad-y-giro-de-motores.html
59  International / Español / Re: Ayuda con Switch Contador Case on: November 22, 2011, 08:56:36 am
O utilizando el módulo de 3 para que te de el valor del case deseado (0, 1 o 2)
Code:
int i = 0;
...
void pulsadorActivado(){
    i = i %3;
    switch(i){
        case 0:
            Configurar parámetros MIDI;
            i++;
            break;
        case 1:
            led parpadea y cambio los parametros midi;
            i++;
            break;
        case 2:
            led fijo y vuelvo a cambiar parametros midi;
            i++;
            break;
    }
}
60  International / Español / Re: [Solucionado] Problema servos on: November 10, 2011, 06:45:18 pm
me refería al código corregido, pero si ya va, de lujo  smiley-cool
Pages: 1 2 3 [4] 5 6