[SOLUCIONADO] Buzzer con resistencia o sin resistencia

Hola.

Tengo una pregunta tonta pero que he buscado y no encuentro exactamente la respuesta.

¿Por qué a un buzzer de esos pequeñitos negros que se alimentan a 5v se le conecta una resistencia de 100 ohmios?

He estado siguiendo un tutorial en el cual no usan resistencia, y funciona perfectamente. El buzzer se conecta a un pin de Arduino y se le declara como HIGH.
¿Es porque la resistencia es necesaria cuando se quiere variar la frecuencia del sonido?
Por ejemplo, en mi proyecto ¿no es necesaria?

Gracias.

Imagino que será como con los LEDs, si no les pones resistencia se encienden pero duran menos pudiendo llegar a morir muy pronto, aunque realmente puedes no ponérselo, será cuestión de conservación del aparato. Yo te sugiero que le pongas la resistencia.
Un saludo.

He estado mirando, y no se si pudiera ser porque hay buzzer que trabajan a 3v, entonces la resistencia fuera para estos, y que para los de 5v no la requiera.

La corriente que puede suministrar un pin digital de Arduino esta limitada a 40 mAh ,por lo tanto tienes que asegurarte de que lo que conectes ahi no supera ese consumo por el bien de tu placa.lo demas es pura ley de ohm: Voltaje = Intensidad * Resistencia .Por ejemplo ,conectas un altavoz de 8 ohm a un pin digital de 5v ,aislando la intensidad tienes: I = V/R ,5/8 = 625mAh ,que excede por mucho los 40mAh mencionados.si pones una resistencia de 100 ohm tenemos 5/228 = 21.93 mAh ,ya tenemos un consumo mas que adecuado (a costa de bajar la potencia del altavoz.).

Entiendo Jose, pero entonces ¿por qué ha funcionado? ¿Se ha podido dañar algo? y si es así ¿cómo lo puedo saber?

Ahora que recuerdo, leí que la propia Arduino tiene una protección que cuando detecta un consumo mayor de lo que puede proporcionar, que eran 20mA por cada pin en conjunto de 5+5 pines (es decir, 20mA + 20mA + 20mA etc.), salta para no dañar la placa. ¿Es cierto? En ese caso si el consumo excediera los 20mA debería saltar no?

Edit:
Por otro lado, para calcular la resistencia de un led, el Voltaje es (V-VLED), ¿En este caso no sería lo mismo (V-VBuzzer)?

jose:
La corriente que puede suministrar un pin digital de Arduino esta limitada a 40 mAh ,por lo tanto tienes que asegurarte de que lo que conectes ahi no supera ese consumo por el bien de tu placa.lo demas es pura ley de ohm: Voltaje = Intensidad * Resistencia .Por ejemplo ,conectas un altavoz de 8 ohm a un pin digital de 5v ,aislando la intensidad tienes: I = V/R ,5/8 = 625mAh ,que excede por mucho los 40mAh mencionados.si pones una resistencia de 100 ohm tenemos 5/228 = 21.93 mAh ,ya tenemos un consumo mas que adecuado (a costa de bajar la potencia del altavoz.).

Vaya problema conceptual tienes josé.
mAh es energía
mA es corriente.

Ley de Ohm es 1 A es la corriente que circula por una Resistencia de 1 ohms cuando se le aplica 1 Voltio de tensión.
En ningún momento se usa Hora o tiempo. Eso es energía. Potencia x tiempo = Energía.
mAh es una medida de energía en elementos de bajo consumo como los involucrados.

Entonces todo lo que dices está bien salvo por h (hora) que no va.

tornadeitor

Por otro lado, para calcular la resistencia de un led, el Voltaje es (V-VLED), ¿En este caso no sería lo mismo (V-VBuzzer)?

En principio si, pero dime. SI vas a la tienda y le pides un buzzer, nadie sabrá decirte su consumo.
Te dirán funciona con 5V o con 3.3V.
Asi que tu haces como bien dijo jose todo como para que no se queme el pin del arduino.

Por cierto. El fusible del arduino es de 500mA y las salidas no deben superar 200mA (todas juntas).

Vaya problema conceptual tienes josé.
mAh es energía
mA es corriente.

no es un problema conceptual,los conceptos los tengo claros,es un problema de nomenclaturas ,obviamente sobra la h..

Y que es la h para ti? porque para mi cuando leo mAh es miliamper x hora o sea energía

Ahora no se que localismo haga que se explique diferente en España de LatinoAmérica y ojo no soy sarcástico.
Veo que te pasa seguido de modo que me llama la atención que siempre que hables de corriente pongas mAh.

surbyte:
En principio si, pero dime. SI vas a la tienda y le pides un buzzer, nadie sabrá decirte su consumo.
Te dirán funciona con 5V o con 3.3V.
Asi que tu haces como bien dijo jose todo como para que no se queme el pin del arduino.

Por cierto. El fusible del arduino es de 500mA y las salidas no deben superar 200mA (todas juntas).

Bueno, el buzzer que tengo trabaja a 5V segun la documentación, por lo que en ese sentido entiendo que no debería haber problemas, y entonces la resistencia se usa como bien dices, para cuando el buzzer trabaja a 3.3V o 5V, en cuyo caso lo mejor es poner la resistencia para curarse en salud, es así?

Es que si no es así, debería haberse dañado el pin del Arduino no?

No lo has comprendido. Jose te lo explicó bien asi que vuelvo a hacerlo.
Tu deberías verificar el consumo del buzzer. Si verificas que consume alimentado con 5V menos de 40mA entonces conectalo directo. Si ves que consume mas de 40mA entonces pones una Resistencia y limitas la corriente.

jose:
La corriente que puede suministrar un pin digital de Arduino esta limitada a 40 mAh ,por lo tanto tienes que asegurarte de que lo que conectes ahi no supera ese consumo por el bien de tu placa.lo demas es pura ley de ohm: Voltaje = Intensidad * Resistencia .Por ejemplo ,conectas un altavoz de 8 ohm a un pin digital de 5v ,aislando la intensidad tienes: I = V/R ,5/8 = 625mAh ,que excede por mucho los 40mAh mencionados.si pones una resistencia de 100 ohm tenemos 5/228 = 21.93 mAh ,ya tenemos un consumo mas que adecuado (a costa de bajar la potencia del altavoz.).

A ver que me he perdido xD.

Si pones una resistencia de 100ohm tienes 5/228? 228? No será 5/108?

surbyte:
No lo has comprendido. Jose te lo explicó bien asi que vuelvo a hacerlo.
Tu deberías verificar el consumo del buzzer. Si verificas que consume alimentado con 5V menos de 40mA entonces conectalo directo. Si ves que consume mas de 40mA entonces pones una Resistencia y limitas la corriente.

Perfecto, en el Datasheet de mi buzzer pone que trabaja con menos o igual a 30mA. Entonces puedo estar tranquilo y conectarlo directo, sin resistencia.

Por cierto, no soy Jose :P.

Si trabaja con 30 mA o menos y Arduino da 40 me da a mí que es al revés, que precisamente tendrás que ponerle la resistencia. Siempre si hay dudas pon la resistencia.
Jose es quien te dijo que verificaras el consumo en primer lugar, no tú.
Un saludo.

jose:
La corriente que puede suministrar un pin digital de Arduino esta limitada a 40 mAh ,por lo tanto tienes que asegurarte de que lo que conectes ahi no supera ese consumo por el bien de tu placa.lo demas es pura ley de ohm: Voltaje = Intensidad * Resistencia .Por ejemplo ,conectas un altavoz de 8 ohm a un pin digital de 5v ,aislando la intensidad tienes: I = V/R ,5/8 = 625mAh ,que excede por mucho los 40mAh mencionados.si pones una resistencia de 100 ohm tenemos 5/228 = 21.93 mAh ,ya tenemos un consumo mas que adecuado (a costa de bajar la potencia del altavoz.).

A ver que me he perdido xD.

Si pones una resistencia de 100ohm tienes 5/228? 228? No será 5/108?

Xtrem3:
Si trabaja con 30 mA o menos y Arduino da 40 me da a mí que es al revés, que precisamente tendrás que ponerle la resistencia. Siempre si hay dudas pon la resistencia.
Jose es quien te dijo que verificaras el consumo en primer lugar, no tú.
Un saludo.

Jaja creía que era el más novatillo de por aquí pero veo que no :stuck_out_tongue: (no te lo tomes a mal).

Hasta donde yo sé, Arduino entrega 40mA máximo, esto quiere decir que si el dispositivo que yo conecto requiere 30mA, solo "jala" esos 30mA. Si necesitara 50mA, entonces hay que poner una resistencia para disminuir ese consumo y que no quiera "jalar" más de esos 40mA que puede entregar Arduino.

Ah vale, perdona entonces. Sí la verdad que este tema me pilla de nuevas, vine rebotado de Matlab y todo esto de la electrónica y demás aún me viene grande.
Un saludo. :slight_smile:

Al pensar lo que comentas me surge una duda @tornadeitor.

Si tenemos un led que consume 2,5v y lo conectamos a 5v con una resistencia de 125Ohm , para que al led le llegen 2.5V y 20mA...

¿Que ocurre si el led consumiera por ejemplo, 50mA? Se supone que con esa resistencia solo entrega 20mA (I=2.5/125 = 20mA)

Lo mismo es una duda tontisima, pero en electronica estoy pegado jeje.

Un saludo

Tornadeitor como ya te lo han comentado los compañeros lo mas recomendable es siempre utilizar una resistencia ya que lo mas probable es que en uso continuado dañes el pin del arduino preguntabas previamente que porque sin haberle puesto resistencia habia funcionado y no habias dañado nada.

Dos opciones:

La resistencia propia del parlante es lo suficientemente alta como para no demandar mucha corriente (cosa que no creo porque esos parlantes oscilan los 8 Ohms) por ejemplo este de aca:

Buzzer de Ejemplo de 42 Ohm

Su consumo conectado directo seria 5 V/42 Ohm 120 mA Por lo tanto con este dañarias el pin del arduino, deberias de adicionarle una resistencia.

Y segunda opcion no tenia la suficiente resistencia el parlante, pero no lo dejas activo el suficiente tiempo como para dañar el pin ya que no se transfiere suficiente energia, sin embargo es una mala practica hacer ello y si o si deberias de calcularle la resistencia debida en serie.

Tambie lei tornadeitor que decias que leiste que el consumo de tu parlante es de 30 mA.

tornadeitor:
Perfecto, en el Datasheet de mi buzzer pone que trabaja con menos o igual a 30mA. Entonces puedo estar tranquilo y conectarlo directo, sin resistencia.

Segun creo eso no indica que solo va a jalar 30 mA indica que como maximo le debes de permitir pasar por el 30 mA de lo contrario lo sobre esfuerzas y lo dañas ademas de que perjudicas el arduino, recomiendo has lo que te comente revisa cual es la resistencia de tu buzzer y le pones una resistencia que haga que en total fluya la corriente nominal especificada por el fabricante.

Nitrosito con respecto a lo que preguntas:

nitrosito:
Si tenemos un led que consume 2,5v y lo conectamos a 5v con una resistencia de 125 Ohm , para que al led le llegen 2.5 V y 20 mA...

¿Que ocurre si el led consumiera por ejemplo, 50mA? Se supone que con esa resistencia solo entrega 20mA (I=2.5/125 = 20mA)

Para que entendamos vamos por pasos la primera situacion que planteas esta bien, ya que:

Rled=(2.5 V)/(20 mA)=125 Ohm
Rserie=125 Ohm
Rtotal=Rled+Rserie=250 Ohm
Ifluye=Vfuente/Rtotal=(5 V)/(250 Ohm)=20 mA
Vled=VfuenteRled/(Rtotal)=5 V125 Ohm/250 Ohm=2.5 V

Todos los Valores Coinciden es decir funciona perfectamente ahora vamos con el segundo caso que planteas aumentando la corriente consumida por el Led.

Rled=(2.5 V)/(50 mA)=50 Ohms
Rserie=125 Ohm
Rtotal=Rled+Rserie=175 Ohms
Ifluye=Vfuente/Rtotal=(5 V)/(175 Ohm)=28.5714 mA
Vled= VfuenteRled/(Rtotal)=5 V50 Ohm/175 Ohm=1.4286 V

Grave problema ves ya que ni le llega la corriente que debería de ser 50 mA como especificas ni tampoco el voltaje con el que trabaja 2.5 V.

Solución: rebaja el valor de la resistencia serie (el calculo de la misma ya te lo dejo a vos para que funcione, según lo que leíste).

Nota: Se muy bien que el LED es un dispositivo no Lineal y que asumir que se comporta como resistencia solo es valido si se encuentra en las cercanías de un punto de operacion especifico sin embargo dado el problema asumir esta aproximación no afecta en gran medida el resultado.

firius2010:
Tornadeitor como ya te lo han comentado los compañeros lo mas recomendable es siempre utilizar una resistencia ya que lo mas probable es que en uso continuado dañes el pin del arduino preguntabas previamente que porque sin haberle puesto resistencia habia funcionado y no habias dañado nada.

Dos opciones:

La resistencia propia del parlante es lo suficientemente alta como para no demandar mucha corriente (cosa que no creo porque esos parlantes oscilan los 8 Ohms) por ejemplo este de aca:

Buzzer de Ejemplo de 42 Ohm

Su consumo conectado directo seria 5 V/42 Ohm 120 mA Por lo tanto con este dañarias el pin del arduino, deberias de adicionarle una resistencia.

Y segunda opcion no tenia la suficiente resistencia el parlante, pero no lo dejas activo el suficiente tiempo como para dañar el pin ya que no se transfiere suficiente energia, sin embargo es una mala practica hacer ello y si o si deberias de calcularle la resistencia debida en serie.

Tambie lei tornadeitor que decias que leiste que el consumo de tu parlante es de 30 mA.

Segun creo eso no indica que solo va a jalar 30 mA indica que como maximo le debes de permitir pasar por el 30 mA de lo contrario lo sobre esfuerzas y lo dañas ademas de que perjudicas el arduino, recomiendo has lo que te comente revisa cual es la resistencia de tu buzzer y le pones una resistencia que haga que en total fluya la corriente nominal especificada por el fabricante.

Nitrosito con respecto a lo que preguntas:

Para que entendamos vamos por pasos la primera situacion que planteas esta bien, ya que:

Rled=(2.5 V)/(20 mA)=125 Ohm
Rserie=125 Ohm
Rtotal=Rled+Rserie=250 Ohm
Ifluye=Vfuente/Rtotal=(5 V)/(250 Ohm)=20 mA
Vled=VfuenteRled/(Rtotal)=5 V125 Ohm/250 Ohm=2.5 V

Todos los Valores Coinciden es decir funciona perfectamente ahora vamos con el segundo caso que planteas aumentando la corriente consumida por el Led.

Rled=(2.5 V)/(50 mA)=50 Ohms
Rserie=125 Ohm
Rtotal=Rled+Rserie=175 Ohms
Ifluye=Vfuente/Rtotal=(5 V)/(175 Ohm)=28.5714 mA
Vled= VfuenteRled/(Rtotal)=5 V50 Ohm/175 Ohm=1.4286 V

Grave problema ves ya que ni le llega la corriente que debería de ser 50 mA como especificas ni tampoco el voltaje con el que trabaja 2.5 V.

Solución: rebaja el valor de la resistencia serie (el calculo de la misma ya te lo dejo a vos para que funcione, según lo que leíste).

Nota: Se muy bien que el LED es un dispositivo no Lineal y que asumir que se comporta como resistencia solo es valido si se encuentra en las cercanías de un punto de operacion especifico sin embargo dado el problema asumir esta aproximación no afecta en gran medida el resultado.

Gracias por tu explicación firius2010. Ahora me has metido el miedo en el cuerpo. ¿Se habrá dañado el pin de Arduino o habrá sufrido algo? ¿Cómo puedo comprobarlo? Si conecto algo a ese pin y funciona bien quiere decir que no se ha dañado nada ¿no?

Respecto a lo de dejarlo activo, el sistema que hice era usando un sensor ultrasónico y cuanto más cerca detectaba la presencia mas rápido pitaba. No sé si puedo indicar que tutorial seguí, en el cual no comentaban nada de ponerle resistencia.

Para estar tranquilo voy a termina poniéndole resistencia a todo lo que conecte a Arduino.

Yo creo que si funciona no le pasa nada.

Los arduino UNO son tanques, yo nose como aún sigue vivo el mio :stuck_out_tongue_closed_eyes: