"EL HUGUITO"
Blog sobre programación y cosas similares
domingo, 23 de marzo de 2025
No se puede instalar Python 3.8 en Windows 7
miércoles, 7 de agosto de 2024
Login failed for user. (Microsoft SQL Server, Error: 18456)
En ocasiones se nos presentan los siguientes errores al querer iniciar sesión con un nuevo usuario que acabamos de crear:
TITLE: Connect to Server
Cannot connect to SEVER
ADDITIONAL INFORMATION:
A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - La cadena de certificación fue emitida por una entidad en la que no se confía.) (Microsoft SQL Server, Error: -2146893019)
For help, click: https://docs.microsoft.com/sql/relational-databases/errors-events/mssqlserver--2146893019-database-engine-error
La cadena de certificación fue emitida por una entidad en la que no se confía
BUTTONS:
OK
TITLE: Connect to Server
Cannot connect to SERVER
ADDITIONAL INFORMATION:
A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - No hay ningún proceso en el otro extremo de la canalización.) (Microsoft SQL Server, Error: 233)
For help, click: https://docs.microsoft.com/sql/relational-databases/errors-events/mssqlserver-233-database-engine-error
No hay ningún proceso en el otro extremo de la canalización
BUTTONS:
OK
A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - La cadena de certificación fue emitida por una entidad en la que no se confía.) (Microsoft SQL Server, Error: -2146893019) La cadena de certificación fue emitida por una entidad en la que no se confía
TITLE: Connect to Server
Cannot connect to DESKTOP-R0MNCAP.
ADDITIONAL INFORMATION:
Login failed for user 'usr_aas'. (Microsoft SQL Server, Error: 18456)
For help, click: https://docs.microsoft.com/sql/relational-databases/errors-events/mssqlserver-18456-database-engine-error
BUTTONS:
OK
Las posibles soluciones son activar la opción Trust server certificate en la ventana de conexión o ver si está activa la opción de SQL Server and windows authentication mode para poder iniciar la conexión. En el video se explica muy bien.
.png)
jueves, 25 de julio de 2024
Generar dos señales de reloj con la ESP32
En los canales se usa el canal cero y el canal dos porque aparentemente los canales vienen en pares y si se usa el cero y el uno tendrán la misma frecuencia.
jueves, 18 de julio de 2024
Get the MAC address of the ESP32
By using the following code you can obtain the MAC address of the ESP32. It is advisable to use a delay to prevent the obtained MAC address from being 00:00:00:00:00:00.
#include <WiFi.h>
void setup(){
Serial.begin(115200);
WiFi.mode(WIFI_STA);
delay(500);
Serial.print("\nDefault ESP32 MAC Address:
");
Serial.println(WiFi.macAddress());
}
void loop(){
//
Do Nothing
}
Result without using delay:
Result using delay:
jueves, 27 de julio de 2023
Usar 2.4" TFT LCD con ESP32 (conexión paralela)
Si necesitamos utilizar la pantalla de 2.4" que tiene los siguientes pines LCD_RST, LCD_CS, LCD_RS, LCD_WR, LCD_RD, GND, 5V, 3V3, LCD_D0, LCD_D1, LCD_D2, LCD_D3, LCD_D4, LCD_D5, LCD_D6, LCD_D7 la conexión es de paralela. A continuación, dejo en enlace de una publicación donde se explica detalladamente como realizar la conexión con el ESP32 y que librería utilizar.
ILI9341 + ESP32 (Parallel) (pangodream.es)
Algunos de los puntos importantes son conectar bien los pines en TX2 y RX2 ya que podríamos confundirnos y tomar TX0 y RX0. Para que se vea bien la pantalla es mejor conectarla alimentación de 5V en lugar de la de 3.3V.
Podríamos tomar de ejemplo la siguiente conexión:
El archivo User_setup.h nos quedaría de la siguiente manera:
// See
SetupX_Template.h for all options available
#define
ESP32_PARALLEL
#define TFT_CS
27 // Chip select
control pin
#define TFT_DC
14 // Data Command
control pin - must use a pin in the range 0-31
#define TFT_RST
26 // Reset pin
#define TFT_RD
13
#define TFT_D1
4 // so a single
register write sets/clears all bits
#define TFT_D2
23
//#define
TFT_D3 22
#define TFT_D3
15
//#define
TFT_D4 21
#define TFT_D4
5
#define TFT_D5
19
#define TFT_D6
18
#define TFT_D7
17
#define
LOAD_FONT2 // Font
2. Small 16 pixel high font, needs ~3534 bytes in FLASH, 96 characters
#define
LOAD_FONT4 // Font
4. Medium 26 pixel high font, needs ~5848 bytes in FLASH, 96 characters
#define
LOAD_FONT6 // Font
6. Large 48 pixel font, needs ~2666 bytes in FLASH, only characters
1234567890:-.apm
#define
LOAD_FONT7 // Font
7. 7 segment 48 pixel font, needs ~2438 bytes in FLASH, only characters
1234567890:.
#define
LOAD_FONT8 // Font
8. Large 75 pixel font needs ~3256 bytes in FLASH, only characters 1234567890:-.
#define
LOAD_GFXFF //
FreeFonts. Include access to the 48 Adafruit_GFX free fonts FF1 to FF48 and
custom fonts
domingo, 9 de octubre de 2022
Máquina de refrescos con LabVIEW
Este programa consiste en una máquina de refrescos donde a partir del dinero ingresado en el numeric_control llamado Dinero un comparador decidirá si es suficiente para comprar cualquiera de los tres refrescos disponible al momento de presionar el botón correspondiente a cada refresco. Si la cantidad es suficiente comenzará a llenarse el tank llamado Barra de llenado y en el string_indicator llamado Mensajes aparecerá un mensaje que dice "Gracias, se está sirviendo " mas el nombre del refresco seleccionado, si el dinero es insuficiente mostrará un mensaje que indica "Dinero insuficiente". Si la cantidad ingresada es mayor al costo del refresco en el numeric_indicator llamdo Cambio mostrará el dinero restante de la operación. Una vez que se llena la barra de carga se detiene el programa pues se cumple una condición de paro de un ciclo while.
Como se puede ver en la imagen anterior, se usa un ciclo while que anida 3 estructuras case, que a su vez, anidan otro case cada una, y éste, un ciclo for.
Dentro del while, se utilizó unbundle by name para poder usar los botones del cluster individualmente. Estos tres botones se conectaron a una estructura case cada uno.
El mensaje de bienvenida no debe estar dentro de ningún case, ya que este se debe mostrar al momento de ejecutar el programa. Se usa un Select conectado a cualquiera de los tres botones, en este caso, el primero, si el botón se activa, no se muestra el mensaje, si no se activa, se muestra el mensaje de bienvenida. Esto es algo lógico, ya que se sabe que no se puede presionar ningún botón antes de correr el programa, entonces, obviamente se mostrará el mensaje antes que nada.
También se muestra un mensaje que dice que ya se está preparando su bebida y se usa una variable local del indicador de texto.
Con un ciclo for se hace la simulación del llenado del vaso. Como se vio anteriormente, se usa un shift register como contador para ir llenando el vaso, empezando de cero y llenándose de 5 en 5 cada 200 milisegundos.
Después, si el valor del tanque es igual a 100, se manda la instrucción de detener el programa.
Si el valor del dinero ingresado es menor que 15, entonces el programa muestra un mensaje emergente que le indica al usuario que no le alcanza para esa compra.
Los siguientes dos case indican lo mismo, sólo cambia el valor del dinero y que se usan variable locales de los controles e indicadores.
Se utiliza un compound OR de tres casillas para detener el programa cuando el tanque de cualquiera de los tres botones llegue a 100.
Los case externos en su caso false no llevan nada, hay que dar clic derecho al tunel del ciclo FOR, y en " Tunnel Mode" ---> Cambiarlo de "Indexing" (que es el valor por default) a "Last Value". Se repite el proceso otras 2 veces (por los otros 2 ciclos FOR que hay). Los elementos cambio y barra de llenado se usan en el primer case directamente y en los otros dos como variable local.
Se agregan algunas imágenes del proceso de elaboración:
Este programa está basado en un ejemplo presentado en el video Simulador de Despachador de refrescos en LabVIEW - YouTube de la página Máquina de llenado de refrescos con LabVIEW - Masterhacks Blog
Se agrega el VI en el siguiente enlace:
https://drive.google.com/file/d/1Fwzkf5qjwchtmQBB9cxqmITGVHdIIpmE/view?usp=sharing
viernes, 14 de enero de 2022
Ejemplos de programas sencillos en python
Hola mundo
print('hola mundo')
Pedir un número e imprimirlo
numero=input('Introduzca un número:')
print('Su número es:',numero)
Ciclo for
for i in range(21):
#print(i)
print(i,end=' ')
print('')