@copilot me puedes hacer un codigo para que me muestre la lectura en una pnatalla display de 4 y 7 segmentos con un sensor lm35 y que el arduino uno tenga una contraseña
Muestra la lectura en un display de 4 dígitos de 7 segmentos.
Requiere una contraseña para mostrar la temperatura.
Asumiré que estás usando un teclado matricial 4x4 para ingresar la contraseña y que la contraseña es "1234". Si estos detalles no son correctos, por favor házmelo saber.
Para empezar, necesitarás las siguientes librerías:
LiquidCrystal.h para el display de 7 segmentos (si usas un modelo que soporta esta librería).
Keypad.h para la gestión del teclado matricial.
Aquí tienes un ejemplo de código Arduino:
Cpp
#include<Keypad.h>#include<SevSeg.h>// Configuración del teclado matricialconst byte ROWS =4;// Cuatro filasconst byte COLS =4;// Cuatro columnaschar keys[ROWS][COLS]={{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'*','0','#','D'}};byte rowPins[ROWS]={9,8,7,6};// Pines conectados a las filasbyte colPins[COLS]={5,4,3,2};// Pines conectados a las columnasKeypad keypad =Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);// Configuración del display de 7 segmentosSevSeg sevseg;// Configuración del LM35constint lm35Pin = A0;// Pin analógico donde está conectado el LM35// VariablesString password ="1234";String inputPassword;bool isAuthenticated =false;voidsetup(){ Serial.begin(9600); byte numDigits =4; byte digitPins[]={10,11,12,13}; byte segmentPins[]={A1, A2, A3, A4, A5, A6, A7};// Ajusta según tu conexiónbool resistorsOnSegments =true;// 'true' es más común byte hardwareConfig = COMMON_CATHODE;// O usa COMMON_ANODE si es tu casobool updateWithDelays =false;bool leadingZeros =false; sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments, updateWithDelays, leadingZeros); sevseg.setBrightness(90);}voidloop(){char key = keypad.getKey();if(key){// Almacenar la tecla presionada para formar la contraseña inputPassword += key; Serial.print("Ingresado: "); Serial.println(key);// Validar si la contraseña ingresada coincideif(inputPassword.length()==4){if(inputPassword.equals(password)){ isAuthenticated =true; Serial.println("Acceso permitido");}else{ isAuthenticated =false; Serial.println("Acceso denegado");}delay(1000); inputPassword ="";// Restablecer la entrada}}if(isAuthenticated){// Leer la temperatura del LM35int sensorValue =analogRead(lm35Pin);float temperature = sensorValue *(5.0/1023.0)*100.0;// Convertir a grados Celsius// Mostrar la temperatura en el display de 7 segmentos sevseg.setNumber(temperature,1);// Un decimal sevseg.refreshDisplay();}else{ sevseg.blank();}}
Notas:
Asegúrate de modificar los pines utilizados según tu configuración de hardware.
Ajusta segmentPins y digitPins a los pines que realmente estés utilizando para el display.
Para este ejemplo, se ha asumido que el display de 7 segmentos es de cátodo común.
¿Hay algo más en lo que te pueda ayudar o alguna modificación que necesites?
Para conectar un display de 4 dígitos de 7 segmentos a un Arduino Uno, necesitas saber si tu display es de ánodo común o cátodo común. En este ejemplo, asumiremos un display de cátodo común. Aquí te indico cómo hacer las conexiones básicas:
Conexiones para un Display de 4 Dígitos de 7 Segmentos:
Segmentos a los Pines del Arduino:
Cada segmento (A, B, C, D, E, F, G) y el punto decimal (DP) en el display tiene un pin. Estos segmentos se conectan a los pines del Arduino a través de resistencias limitadoras de corriente típicamente de 220Ω.
Aquí está el esquema básico de cómo conectar el display de 7 segmentos:
Conecta los pines del segmento del display a sus respectivos pines de salida en el Arduino: A1, A2...A7 (a través de resistencias de 220Ω).
Conecta los pines comunes del display a los pines 10, 11, 12, y 13 del Arduino.
Ejemplo de Conexión
Segmentos:
Conecta el pin del Segmento A del display a pin A1 del Arduino.
Conecta el pin del Segmento B del display a pin A2 del Arduino.
Repite este procedimiento para los otros segmentos (C, D, E, F, G).
Digitos:
Conecta el pin común del Dígito 1 a pin 10 del Arduino.
Conecta el pin común del Dígito 2 a pin 11 del Arduino.
Repite para el Dígito 3 y el Dígito 4.
Consideraciones
Resistencias: Siempre utiliza resistencias para limitar la corriente a los segmentos.
Tipo de Display: Asegúrate de si usas cátodo o ánodo común, puesto que el código y conexiones pueden variar.
Por favor, verifica el tipo exacto de tu display de 7 segmentos y los números de pines ya que varían por modelo y manufactura. Si tienes detalles específicos sobre tu display o necesitas aclaraciones adicionales, por favor házmelo saber.
Perfecto, si tu display es de ánodo común, la configuración de las conexiones y la lógica en el código cambiarán ligeramente. Con un display de ánodo común, debes conectar el pin común de cada dígito a VCC en lugar de GND, y la lógica para encender un segmento es baja (0) en vez de alta (1).
Conexiones para un Display de Ánodo Común:
Segmentos a los Pines del Arduino:
Al igual que antes, conecta cada segmento (A, B, C, D, E, F, G) y el punto decimal (DP) a través de resistencias limitadoras de corriente (típicamente 220Ω) a los pines del Arduino.
Asumamos los siguientes pines para los segmentos:
Segmento A: A1
Segmento B: A2
Segmento C: A3
Segmento D: A4
Segmento E: A5
Segmento F: A6
Segmento G: A7
Pines Comunes de los Dígitos a VCC:
Conecta los pines comunes de cada uno de los 4 dígitos a VCC (5V del Arduino).
Código Modificado
Con el cambio a un display de ánodo común, es importante configurar correctamente el tipo de hardware en la librería SevSeg. Aquí está el fragmento relevante del código:
Cpp
bool resistorsOnSegments =true;// Las resistencias están conectadas a los segmentosbyte hardwareConfig = COMMON_ANODE;// Especificar ánodo común
Procedimiento de Conexión
Segmentos:
Cada segmento del display se conecta al pin correspondiente en el Arduino a través de una resistencia de 220Ω:
Segmento A a A1
Segmento B a A2
Y así sucesivamente para C, D, E, F, G.
Pines Comunes de Dígitos:
Conecta el pin común de cada dígito al VCC del Arduino (5V).
Consideraciones
Polaridad: Con displays de ánodo común, cada segmento se activa con una señal bajando (0) en el pin del Arduino.
Resistencias: Asegúrate de usar resistencias limitadoras para cada segmento.
Si necesitas ajustar algo más específico o si tienes alguna pregunta adicional, no dudes en decirlo.
kikeelect
copilot
LiquidCrystal.hpara el display de 7 segmentos (si usas un modelo que soporta esta librería).Keypad.hpara la gestión del teclado matricial.segmentPinsydigitPinsa los pines que realmente estés utilizando para el display.kikeelect
copilot
-
Segmentos a los Pines del Arduino:
- Cada segmento (A, B, C, D, E, F, G) y el punto decimal (DP) en el display tiene un pin. Estos segmentos se conectan a los pines del Arduino a través de resistencias limitadoras de corriente típicamente de 220Ω.
Asumamos los siguientes pines para los segmentos:
- Segmento A: A1
- Segmento B: A2
- Segmento C: A3
- Segmento D: A4
- Segmento E: A5
- Segmento F: A6
- Segmento G: A7
-
Digitos Comunes a Pines del Arduino:
- Cada dígito del display también tiene un pin común que controla qué dígito está activo.
Asumamos las siguientes conexiones de los pines comunes:
- Dígito 1: 10
- Dígito 2: 11
- Dígito 3: 12
- Dígito 4: 13
Conexiones Eléctricas- Conecta los pines del segmento del display a sus respectivos pines de salida en el Arduino: A1, A2...A7 (a través de resistencias de 220Ω).
- Conecta los pines comunes del display a los pines 10, 11, 12, y 13 del Arduino.
Ejemplo de Conexión-
Segmentos:
- Conecta el pin del Segmento A del display a pin A1 del Arduino.
- Conecta el pin del Segmento B del display a pin A2 del Arduino.
- Repite este procedimiento para los otros segmentos (C, D, E, F, G).
-
Digitos:
- Conecta el pin común del Dígito 1 a pin 10 del Arduino.
- Conecta el pin común del Dígito 2 a pin 11 del Arduino.
- Repite para el Dígito 3 y el Dígito 4.
Consideracioneskikeelect
copilot
-
Segmentos a los Pines del Arduino:
- Al igual que antes, conecta cada segmento (A, B, C, D, E, F, G) y el punto decimal (DP) a través de resistencias limitadoras de corriente (típicamente 220Ω) a los pines del Arduino.
Asumamos los siguientes pines para los segmentos:
- Segmento A: A1
- Segmento B: A2
- Segmento C: A3
- Segmento D: A4
- Segmento E: A5
- Segmento F: A6
- Segmento G: A7
-
Pines Comunes de los Dígitos a VCC:
- Conecta los pines comunes de cada uno de los 4 dígitos a VCC (5V del Arduino).
Código ModificadoSevSeg. Aquí está el fragmento relevante del código:-
Segmentos:
- Cada segmento del display se conecta al pin correspondiente en el Arduino a través de una resistencia de 220Ω:
- Segmento A a A1
- Segmento B a A2
- Y así sucesivamente para C, D, E, F, G.
-
Pines Comunes de Dígitos:
- Conecta el pin común de cada dígito al VCC del Arduino (5V).
Consideraciones