Cableado del interruptor on-off con resistencia a SoC

0

Tenga en cuenta: aunque esta pregunta implica una Raspberry Pi (en adelante RPi ), ¡en realidad es una cuestión de pura electrónica!

Estoy tratando de conectar mi RPi 1 Modelo A a una placa de pruebas con un solo interruptor de encendido-apagado-encendido-apagado en ello. Lo bueno aquí es que, aunque estoy usando un interruptor de encendido-apagado-encendido-apagado, realmente quiero que funcione como un interruptor normal (encendido-apagado). Es decir: empujarlo una vez, el circuito está cerrado y enviar una señal de entrada a mi RPi. Empújelo de nuevo, y el circuito se abrirá. Enjuague y repita.

Me dieron este diagrama para seguir para cablear las cosas:

Posteriormente,inferímipropiainterpretacióndeesto,quemuestramásclaramentelaunióndelospinesizquierdoyderechodelinterruptor(loqueledaelcomportamientodeseadodeencendidoyapagado),asícomolaformadecableado.Lapotenciade3.3VenelRPialpindeentradaGPIO:

¡Asíque,siteparecequealgodearribatepareceincorrectooincorrecto,comienzaporcorregirme!

Suponiendoqueestoyenelbuencamino,ahoraestoytratandodeenrealidadcablearestoenlavidareal,entremiRPiymiplacadepruebas.Aquíestámimejorintento:

NoolvideelLEDylasresistenciasenlaesquinainferiorderechadelaplacadepruebas,quedanrestosdeotroexperimentoynoestánconectadosaningunaotracosa.

  • Porlotanto,enlapartesuperiorizquierdatenemoslafuentedealimentaciónde3.3VdelRPiconectadaalrielsuperiordelaplacadepruebasatravésdeunpuenterojo;entonces
  • Uncabledepuenterojomáspequeñoenvíalaalimentaciónaunacolumnaqueluegoseconectaaunaresistenciade10kOhm;mássobreestoenunsegundo

Enelladoizquierdodelafotodearriba,tenemoselinterruptor,aquíhayunmejorvistazoalcableado/configuración:

  • Observeelpequeñopuentenaranjaqueconectalospinesdelinterruptorizquierdoyderecho;Creoqueestoesloquelograelencendido-apagado-encendido-apagado->comportamientoon-offqueestoybuscando
  • Lamismacolumnaqueunelospinesizquierdoyderecho(atravésdelpuentenaranja)tambiénestáconectadaaunpuenterojoquetambiénestáconectadoalamismaresistenciade10kOhmdelaquehablamosarriba
  • Finalmente,elpincentraldelinterruptorestáconectadoalrielGNDatravésdeunpuentenegro

Estonosllevaalcentrodelbeadboard,dondeestácolgandolagranresistenciade10kOhmdegrangrosor:

  • LaresistenciaestáconectandolaalimentacióndelRPialinterruptor(ambasclavijasalmismotiempo)
  • LaresistenciatambiénseconectadenuevoalpindeentradadelGPIOatravésdelcabledepuentegris

¡Finalmente,mipregunta!

Recuerda,alfinaldeldía,todoloquequierohaceres:

  • Conviertaesteinterruptordeencendido-apagado-encendido-apagadoenuninterruptordeencendido-apagado
  • Cuandoelusuariopresionaelinterruptor(cerrándolo),seenvíaunaseñalapropiadaalpindeentradaGPIO,queluegosemanejaenlacapadesoftware

Entoncespregunto:¿micircuitolograráelsiguientecomportamiento?¿Estácableadocorrectamente(conexionesdecablescorrectas,usocorrectodelaresistencia,etc.)?¿Oserá"freír mi pi"? Si algo es incorrecto, ¿cuál es la solución / solución?

Actualizar

Varios usuarios me han señalado que mi cableado alrededor del interruptor es incorrecto, aquí hay un diagrama de Fritzing de lo que pienso la solución es:

Actualizaciónfinal

Cableadocuandoconfigurolaresistenciainternadepinesenlacapadesoftware,yomitolaresistenciadetablero:

    
pregunta smeeb

1 respuesta

6

Figura1.Arranqueincorrecto.

Suresistenciadepull-upestáconectadaalrielincorrecto.Estátirandohaciaabajo.Tubotónsimplementelobajamejor.

simular este circuito : esquema creado usando CircuitLab

Figura 2. (a) Lo que pretendías. (b) La forma en que lo cableaste. (c) Con el pull-up interno habilitado.

El enlace de alambre en el extremo derecho de su resistencia está cableado a GND en lugar de V +.

Si puede programar el GPIO con un pull-up interno, omita la resistencia. No es requerido. En la configuración actual compite con el pull-up y el voltaje de entrada nunca puede superar el establecido por el divisor de potencial creado por el pull-up y el pull-down.

Aclaración extrema:

Figura2.Elcablepuentedelaresistenciadepull-updebemoverseparaterminarenlaposición2,noenlaposición1.

Deloscomentarios:

  

OK,asíqueinicializarémipinenlacapadesoftwareatravésdegpioController.provisionDigitalOutputPin(RaspiPin.GPIO_23,'RunningLed',PinState.HIGH),loqueharáquelaresistenciainternadelpin#23deGPIO"se levante" (PinState) .Alta), de modo que cuando alguien presiona el interruptor (que a su vez cierra el circuito) la resistencia interna se activará, ¿sí?

Eso funcionará correctamente, pero su descripción de la acción es incorrecta.

simular este circuito

Figura 3. Pull-up interno con interruptor desplegable externo.

  • Una vez habilitada, la resistencia de pull-up estará en el circuito como si estuviera conectada en su lugar. No se "activa" en ningún momento, pero será efectivo bajo ciertas condiciones.
  • Fig. 3a: Con SW1, abrir el pull-up, R1, conecta el búfer interno a V +. La entrada ahora es "pull-up" a Vcc. Su programa lo leerá como "alto".
  • Fig. 3b: Con SW2 cerrado, el pull-up todavía está intentando tirar, pero es superado por la resistencia mucho más baja del interruptor. El voltaje de entrada bajará a 0 V. El programa leerá la entrada como "baja".

Tenga en cuenta que anteriormente en la discusión iba a tener un desplegable externo y un desplegable interno. Esto no funcionaría ya que el voltaje (con el interruptor abierto) no sería ni completamente alto ni totalmente bajo y probablemente estaría en un estado indefinido alternando entre los dos cuando el programa lo lea.

    
respondido por el Transistor

Lea otras preguntas en las etiquetas