Sunteți pe pagina 1din 4

Sesión online

Sacar las cosas más interesantes de los foros

Recomendaciones generales:

Linux no hemos conseguido

Mensajes:
• Centrarse en las actividades obligatorias a aquellos que vayan mas
retrasados

U2:

• No hay R interna en el pin 13


• Verificar puerto y placa cuando no hay conexión con placa.

U3:

• Cálculo de la R para un LED, Valores de las resistencias siempre por


arriba

Ley de Ohm

20 mA es la intensidad máxima que soporta el LED, se pone una resistencia un poco superior a 150
ohmios para que no esté al máximo de su funcionamiento

• Acelerar el parpadeo en cada iteración


3.6. Foro Unidad 3 Acelerar el parpadeo en cada interacción

El parpadeo se acelera porque cada vez que se ejecutan las instrucciones del parpadeo:

digitalWrite (led, HIGH);

delay (tiempo);

digitalWrite (led, LOW);

delay (tiempo);

La variable tiempo tiene un valor menor, por lo que está menos tiempo apagado y menos encendido.

Podemos disminuir el valor de la variable de diversas maneras:

a) tiempo=tiempo-100; con esta instrucción cada vez que se ejecute se está restanto 100 al valor
anterior.

b) en el jemplo de Mª del Carmen, con el bucle for (int i = 0; i < 4; i++):

t=400-100*i;

t comienza con el valor de 400 cuando i=0; cuando i=1, a t se resta 100; cuando vale 2 al valor
anterior se le resta 200 y así sucesivamente.

se puede incluir como condición que si el tiempo de parpadeo es menor o igual a una cantidad, por
ejemplo 200, se mantenga ese valor y no siga disminuyendo, consideramos que inicializamos t=500;

for (i=0, i<5,i++){

if (t<= 200) {
t=200;

digitalWrite(led, HIGH);

delay (t);

digitalWrite(led, LOW);

delay (t);

else {

digitalWrite(led, HIGH);

delay (t);

digitalWrite(led, LOW);

delay (t);

t=t-100;

• Zumbador pasivo y como tratarlo

El zumbador que viene no me funcionaba al conectarlo a un pin con el código digitalWrite. Resulta que
es de tipo pasivo y tenemos que aplicarle un tren de impulsos. Creo que lo mejor es con la instrucción
tone (pin, frecuencia); o tone (pin, frecuencia, duración);

Para detener el sonido, usamos noTone (pin).

Se puede usar en cualquier salida digital.

Mientras funcione no podremos usar las salidas PWM en los pines 3 y 11.

No podemos usar la función tone() en dos pines de forma simultánea. Deberemos apagar el tono con la
funcionnoTone() antes de poder usarlo en otro pin.

Los rangos de la función tone son de 31 Hz a 65535 Hz.

Saludos.

• Fritzing ordenar el esquema (podemos hacer una demo en directo) o


poner un video...

U4:
• Pulsador con memoria

Hay un error en el esquema eléctrico del vídeo del apartado 4.4

La resistencia de pull-down del pulsador figura en el esquema con un valor de 10Ω. Debería tener un
valor de 10kΩ.

En los recursos del apartado 4.4, es decir, en el esquema de fritzing y en la imagen del montaje,sí está
la resistencia de 10kΩ

• Pull-up por software


int pin=12 ; // número del pin
voidsetup() {
pinMode(pin, INPUT_PULLUP); // declaramos pin de entrada con resistencias internas de Pull-up
}

En el caso de Arduino, ofrece la posibilidad de aplicar una resistencia Pull-Up mediante software.

El código de Arduino sería el siguiente:

int interruptor = 12; //Pin del interruptor


voidsetup(){
pinMode(interruptor, INPUT); //Interruptor como entrada
digitalWrite(interruptor, HIGH); //Resistencia pull-up
}
voidloop(){
}

Esta información está incluida dentro del apartado recursos, pero para mi gusto, queda un poco
escondida.

Esa es una forma de configurar la resistencia de pull-up.

la otra más simple es:

int pin=12 ; // número del pin

voidsetup() {
pinMode(pin, INPUT_PULLUP); // declaramos pin de entrada con resistencias internas de Pull-up

U5:
• Pulsador que conecte y desconecte el sistema- ver el código

Duda sobre como añadir un interruptor que conecte y desconecte el interruptor crepuscular

para incluir un interruptor debes declárarlo y declarar una variable de lectura de la entrada, por
ejemplo: pulsador y valorpulsador. Al inicio del bucle haces la lectura del pulsador, (
valorpulsador=digitalRead(pulsador). Si esta pulsado que ejecute el código del interruptor crepuscular:
if( valorpulsador==HIGH) . Si no esta pulsado, lo que determines: todos apagados o encendidos o lo
que veas.

Puedes hacer algo asi:

voidloop() {
// lee el estado del pulsador y lo almacena en variable
buttonState = digitalRead(buttonPin);

// revisa si el pulsador esta presionado


if (buttonState == HIGH) {
// si el estado del led es bajo
if (systemState == LOW) {
systemState = HIGH; // lo establece como alto
}
// en caso contario lo establece como bajo
else {
systemState = LOW;
}
// tiempo que evita que el programa siga cumpliendo la condicion
delay(200);
}

if (systemState == HIGH) {
// activa el sistema
}
else {
// apaga el sistema
}
}

U6:
• Sensor de temperatura: problemas con las oscilaciones

Errores de lectura del TMP36 Antonio Domínguez


Estamos comprobando en lo que llevamos de curso y en distintas entradas de los foros que, en las
distintas tareas donde utilizamos el sensor de temperatura TMP36, está dando muchos problemas de
lecturas erróneas. Parece que cualquier variación en el consumo de otros componentes o incluso un
movimiento de los cables produce lecturas erróneas o se dispara en los grados.

Finalmente he conseguido una forma de conectarlo de modo que, en mi caso, estos problemas han
desaparecido. Os lo indico por si queréis comprobarlo vosotros también.

1.- Conectando el TMP36 directamente de la placa arduino con conectores macho-hembra, menos los 5V
que los tengo que sacar de la protoboard si tengo conectado algo más como LED o LCD.

2.- Cargar el código por el USB, desconectarlo y alimentar la placa con la pila de 9V con el adaptador
que viene el el kit

La lectura en mis pruebas es real y no cambia con el funcionamiento de los demás componentes.

• PIR: la configuración

Os funciona el encendido del led con PIR?

Para que funcione bien el PIR hay que tener en cuenta varias cosas además del patillaje, pues un sensor
cuya respuesta no es inmediata ni al principio ni entre lecturas:

Tiempo de inicialización: después de alimentar el módulo HC-SR501, debe transcurrir 1 minuto antes de
que inicie su operación normal. Durante ese tiempo, es posible que el módulo active 2 ó 3 veces su
salida.

También es importante ajustar bien el tiempo entre lecturas (de 3 segundos a 5 minutos) con el
potenciómetro del sensor, en las pruebas yo lo he ajustado casi al mínimo para que no esté demasiado
tiempo dando señal de activación pues en seguida pasaba a tiempos de más de 1 ó 2 minutos. Durante
este tiempo la salida de alarma se mantiene en el estado de la última lectura (alto o

bajo).

S-ar putea să vă placă și