Tutorial 5: Comunicación USART, (tx y rx) con ATmega328p

  Рет қаралды 18,082

Carlos QL

Carlos QL

Күн бұрын

Пікірлер: 53
@diegovalenzuelabernal9983
@diegovalenzuelabernal9983 3 жыл бұрын
Muy buen video! Muchas gracias!
@CarlosQL
@CarlosQL 3 жыл бұрын
Gracias Diego, saludos
@miguelorta607
@miguelorta607 3 жыл бұрын
Excelentes tutoriales. Felicitaciones! Me encantaría que hicieras un video sobre enviar y recibir datos en una red CanBUS utilizando por ejemplo los AVR ATMEGA32M1 o el AT90CAN128. He buscado en internet pero no he podido conseguir nada que sea objetivo sobre el tema. Por ejemplo: Cómo colocar 8 bytes en la Data CanBUS y transmitirlos, luego recibirlos en otro AVR y poder verlos.
@mateoortiz3502
@mateoortiz3502 4 ай бұрын
hola, esa libreria usar solo sirve para el Atmega328p o tambien me puede servir para el Atmega32a ?
@claudiocanchola4302
@claudiocanchola4302 2 жыл бұрын
Carlos buena noche, una pregunta, estoy haciendo un proyecto y quisiera saber si hay forma de usar el Arduino UNO como convertidor de TTL a USB, porque no tengo puerto DB9 y había entendido que el Arduino Uno tiene uno, mi duda es si debo ponerle código al Arduino para activarle los puertos TX y RX de se así cómo?, Y hace tiempo intenté ocupar un convertidor, pero nuca encontré los drivers porque parece ser que es de marca genérica, el convertidor tenía una MAX32, muchas gracias y buen video
@CarlosQL
@CarlosQL 2 жыл бұрын
Sí puedes usar el arduino uno como adaptador de TTL a USB, puedes utilizar 0 RX y 1 TX de la placa de Arduino, como salida y entrada TTL. No necesitas poner ningún código, si tienes un Arduino uno original viene con un ATmega16u2 configurado para USB a TTL y si usas una palca clon, vienen con un integrado dedicado a eso. Lo que si te recomendaría es que puedas retirar el Atmega328p de la placa para que no interfiera en la comunicación. Saludos
@pabloadrianulloa406
@pabloadrianulloa406 6 ай бұрын
Hola Carlos, por favor, que interfase uart-usb utilizaste en este proyecto?
@CarlosQL
@CarlosQL 6 ай бұрын
Hola Pablo, en este ejemplo estaba unsando un MAX232 (adaptdor de TTL a RS232) porque estaba usando el puerto serial de la computadora. Pero tranquilamente lo puedes reemplazar por un CP2102, CH340 o FT232RL . Saludos
@escobarmirandaalaneduardo6372
@escobarmirandaalaneduardo6372 8 ай бұрын
hola, gracias por el tutorial, pero tengo un problema, agrego la librería como dices, pero dentro del programa no aparece y por ende al darle compilar me marca error porque no encuentra esa librería, ¿Qué puedo hacer?
@jhonhernandez878
@jhonhernandez878 5 жыл бұрын
Hola una pregunta, si yo estoy usando la tarjeta de arduino uno, pero igual estoy programando con AtmelStudio, la comunicación serial con el pc la hace por medio de la comunicación serial por el USB? gracias, muy buen vídeo
@CarlosQL
@CarlosQL 5 жыл бұрын
Hola Jhon, así es, la placa de Arduino ya trae un conversor de UART a USB, puedes usar ese puerto, solo necesitas saber que numero de COM tiene asignado. Saludos
@marcelohiga5297
@marcelohiga5297 4 жыл бұрын
Excelente tutorial amigo Carlos , tengo una duda , cómo podría enviar cadenas como por ejemplo : " Led1 Encendido" y que el uC me recepcione la cadena y realice tal acción ? Podrias darme alguna sugerencia por favor ?
@CarlosQL
@CarlosQL 4 жыл бұрын
Hola Marcelo, hay un video de ese tema en el canal, espero te sirva. Saludos desde Perú kzbin.info/www/bejne/infCYYuKlLOSps0
@DRACOBUCIO
@DRACOBUCIO 4 жыл бұрын
Hola, excelente vídeo. Observo que tienes bastante dominio en el tema y me da confianza preguntarte lo siguiente: -¿qué tanto baja el tiempo el usar esa librería en Atmel Studio en comparación con la función "Serial.print()" que arduino ya brinda en su IDE? Para dimensionar qué tanto conviene usar este método en vez de Arduino. -¿Existe alguna librería para el USART en el AVR del Arduino Mega 2560 que te permita utilizar todos los puertos serie que tiene? Muchas gracias por tu atención.
@CarlosQL
@CarlosQL 4 жыл бұрын
Hola Draco, gracias por la pregunta, el tiempo exacto que demorar las funciones de arduino con respecto a las funciones del AVR-GCC no lo sé. Pero Arduino utiliza el mismo compilador que Atmel Studio, el AVR-GCC, solo que ofrece una capa de abstracción de hardware, con cual definitivamente sus funciones generar más instrucciones en ASM al momento de ser copilado y por ende mayor demora en ejecutar el código . No tengo código para el Mega2560, espero más adelante con algo de tiempo, poder hacer un par de videos con ese micro. Saludos desde Perú
@DRACOBUCIO
@DRACOBUCIO 4 жыл бұрын
@@CarlosQL ¿Qué tanta posibilidad hay de qué nos pongamos en mayor contacto para hablar acerca de asesorías con respecto a algunas dudas de un proyecto que elaboraré?
@CarlosQL
@CarlosQL 4 жыл бұрын
@@DRACOBUCIO puedes escribirme al correo carlos359_7@hotmail.com o al faceboock facebook.com/Karlos.ql7
@TheSkatutorial
@TheSkatutorial 3 жыл бұрын
Puedo programar el atmega 328p con Arduino ide y después usar la comunicación uart???
@CarlosQL
@CarlosQL 2 жыл бұрын
Si se puede, el bootloader de Arduino utiliza el puerto UART pero solo durante la programación, al momento de resetear el microcontrolador, luego puedes usar el UART libremente. Saludos
@enriquejmz.c.6086
@enriquejmz.c.6086 3 жыл бұрын
Que tal!!! tengo un Atmega16A y quiero usar la comunicación Tx y Rx, pero como puedo programarlo en ensamblador? o como puedo poner mi atmel studio para programar en C?
@dlal1952
@dlal1952 4 жыл бұрын
Que tal gracias por tus videos, tengo una duda este codigo lo he implementado para 3l 328 P, pero por medio de un modulo bluetooh y no me funciona, es para un proyecto, no se si me podrias ayudar?
@CarlosQL
@CarlosQL 4 жыл бұрын
Hola, debería funcionar, indistintamente si es un bluetotoh o un adaptador de uart a usb. Verifica si el módulo bluetooth esta a la misma velocidad que el UART del AVR, en este ejemplo esta en 9600 baudios
@ivangreviews
@ivangreviews 5 жыл бұрын
Por el tx y rx se puede mandar info del adc?
@CarlosQL
@CarlosQL 5 жыл бұрын
Sí, puedes mandar el dato del Adc, que normalmente son 10 bits, en dos registros de 8 bits, o puedes mandarlos como una cadena de caracteres que represente el valor del Adc.
@anyeles1000
@anyeles1000 5 жыл бұрын
@@CarlosQL hola prodrias explicar como puedo mandar los 10 bits?
@CarlosQL
@CarlosQL 5 жыл бұрын
@@anyeles1000 Si quieres visualizar el valor del Adc por el puerto serial, es más fácil mandarlo como cadena de caracteres. En este video muestro como enviar números enteros convertidos en cadena de caracteres, con la función printf. kzbin.info/www/bejne/infCYYuKlLOSps0
@rosachunga2674
@rosachunga2674 6 жыл бұрын
me recomiendas usar el atmel studio, va a seguir teniendo mas actuizaciones?
@CarlosQL
@CarlosQL 6 жыл бұрын
La verdad es que Microchip, le esta poniendo más dedicación a MPLABX. Pero Atmel Studio va seguir como uno de los IDEs oficiales, es muy potente y tiene mucha preferencia por los amantes de los AVR. MPLABX está mas destinado para los que programan Pics, para que puedan probar los micros AVR. Recuerda que al margen del IDE, el compilador AVR-GCC se puede utilizar en ambos IDEs.
@camelazo
@camelazo 3 жыл бұрын
Atmel Studio sobre todas las cosas, sé de personas en el ámbito profesional que siguen programando con Atmel Studio 4 no sé porqué tanto empeño en usar lo de moda, microchip studio, ray tracing , rgb y apps que no sirven para programar!! de hecho microchip tiene algunas fallas para visualizar estados en la simulación en uart por ejemplo y en las interrupciones también !!
@camelazo
@camelazo 3 жыл бұрын
hasta para organizar las ventanas tienes que modificar unos registros sino se te crashea!!
@lalo34d
@lalo34d 4 жыл бұрын
Me podrías compartir tus valores de los fuses para 16MHz
@CarlosQL
@CarlosQL 4 жыл бұрын
Hola gerardo, los valores son: FuseH 0xD9, FuseL 0xFF, FuseE0xFF
@ScpmatrixTecnologias
@ScpmatrixTecnologias 4 жыл бұрын
Buenas bro, oye en dado caso de que requiera necesitar trabajar a una velocidad de 2400 baudios, como lo puedo modificar en el código?. Saludos y buen vídeo
@CarlosQL
@CarlosQL 4 жыл бұрын
Hola, la velocidad depende del Cristal que estas usando, en este ejemplo estoy con un cristal de 16MHz a 9600 baudios. Para 2400 a 16MHz debes modificar el dato que se cargar al registro UBRR0H = 0x01 y UBRR0L = 0xA0 este número es 416 en decimal y esta explicado en el minuto 3:45 del video. Estos valores y la formula esta en la hoja de datos del fabricante. Te invito a ver este video donde usamos la librería setbaud.h que nos ayuda a configurar esto kzbin.info/www/bejne/infCYYuKlLOSps0
@omaralejandrozaragozaayala4702
@omaralejandrozaragozaayala4702 4 жыл бұрын
Buen dia a mi me marca error al poner su libreria, estoy usando un atmega 8 me podria ayudar
@CarlosQL
@CarlosQL 4 жыл бұрын
Esa librería esta hecha para el Atmega328p, en el Atmega8 los registros varían un poco
@omaralejandrozaragozaayala4702
@omaralejandrozaragozaayala4702 4 жыл бұрын
@@CarlosQL me podrias apoyar?
@CarlosQL
@CarlosQL 4 жыл бұрын
@@omaralejandrozaragozaayala4702 este código es para un Atmega8: #define F_CPU 16000000 #include #define BAUD 9600 #include void UART_init(); //función para iniciar el USART AVR asíncrono, 8 bits, 9600 baudios, unsigned char UART_read(); //función para la recepción de caracteres void UART_write(unsigned char); //función para la transmisión de caracteres void UART_msg(char*); //función para la transmisión de cadenas de caracteres void UART_init() { DDRD |= (1
@jmgandur
@jmgandur 5 жыл бұрын
Tengo todo igual pero la terminal en proteus no muestra nada, que podrá ser?
@CarlosQL
@CarlosQL 5 жыл бұрын
Puede ser la configuración de FUSES del Atmega, por defecto en proteus la opción CLKDIV8 viene programada (0) hay que ponerlo en 1 y escoger Ext Clock, como reloj. Saludos
@jmgandur
@jmgandur 5 жыл бұрын
@@CarlosQL ya lo había resuelto jaja gracias, ahora lo que pasa es que no puedo lograrlo en físico, crees que podrías detallar más esa parte por favor?
@longlivejesus4113
@longlivejesus4113 5 жыл бұрын
Me sucede lo mismo ya cambie CLKDIV8 a 1 y como quiera no me sale nada en la terminal virtual, que podria ser?
@ramosespejelgustavo4173
@ramosespejelgustavo4173 3 жыл бұрын
@@longlivejesus4113 Va a sonar increíble, pero yo lo solucione cambiando al encapsulado del micro. Lo tienes que poner en DIP28
@LuisEduardo-ux7fh
@LuisEduardo-ux7fh 4 жыл бұрын
Que tal amigo, esto cuenta como un bootloader? saludos:)
@CarlosQL
@CarlosQL 4 жыл бұрын
No Luis, un bootloaderr es un código que se aloja en una zona especial de la memoria del programa del avr y permite cargar el archivo hex a la memoria de programa de este, a través de UART. Este es solo un ejemplo para enviar y recibir datos por el puerto UART
@LuisEduardo-ux7fh
@LuisEduardo-ux7fh 4 жыл бұрын
@@CarlosQL Tienes algún tutorial sobre eso? O alguna guía Realmente no logro desarrollarlo y no he podido encontrar una información que me ayude a hacerlo Gracias
@CarlosQL
@CarlosQL 4 жыл бұрын
@@LuisEduardo-ux7fh Puedes usar el mismo bootloader que usa la plataforma de arduino. y puedes programar el micro desde AVRdudes, utilizando el puerto serial (COM)
@LuisEduardo-ux7fh
@LuisEduardo-ux7fh 4 жыл бұрын
Y que tan complicado es hacer un bootloader propio ? Es que realmente no tengo ninguna estructura ni ayuda de dónde puedo basarme
@CarlosQL
@CarlosQL 4 жыл бұрын
@@LuisEduardo-ux7fh tienes que saber el protocolo stk500. El optiboot, por ejemplo, es de código libre. github.com/Optiboot/optiboot y aquí puedes encontrar los comandos del stk500 ww1.microchip.com/downloads/en/Appnotes/doc2525.pdf
@jhordyperez1594
@jhordyperez1594 5 жыл бұрын
como activar el modo nocturno en atmel studio ???????
@rogermiranda915
@rogermiranda915 5 жыл бұрын
Herramintas->Opciones->General->Cambiar color
@DavidCervantesmrclutch
@DavidCervantesmrclutch 4 жыл бұрын
oye bro pero no subiste el diagrama solo subiste el codigo =/
@CarlosQL
@CarlosQL 4 жыл бұрын
Hola David, tienes razón, puedes descargar el esquemático del tutorial 7, es el mismo, solo que es con otro ejemplo kzbin.info?v=TF_0XT_N_pk&redir_token=5dT6-Prfr7EQw9hM4z5JBylNqxV8MTU5MTY0NjI1MUAxNTkxNTU5ODUx&event=video_description&q=https%3A%2F%2Fmega.nz%2F%23%21SeBRUQAR%219-iLkTboKfN6SJER1VXmQt3BIujx6NAJriI-BSpKKAQ Saludos
Learning AVR-C Episode 10: Serial Communication (TX)
23:00
humanHardDrive
Рет қаралды 116 М.
小丑家的感情危机!#小丑#天使#家庭
00:15
家庭搞笑日记
Рет қаралды 38 МЛН
Wait for it 😂
00:19
ILYA BORZOV
Рет қаралды 7 МЛН
У вас там какие таланты ?😂
00:19
Карина Хафизова
Рет қаралды 10 МЛН
USART Comunicación Serial - Parte1: Conceptos Generales
9:09
Learning AVR-C Episode 11: Serial Communication (RX)
13:14
humanHardDrive
Рет қаралды 38 М.
Puerto CAN - Comunicación Serie - ¿Cómo funciona?
11:29
ELECTRONOOBS en Español
Рет қаралды 83 М.
The RS-232 protocol
26:10
Ben Eater
Рет қаралды 851 М.
Tutorial 16: TIMER0 modo NORMAL TEMPORIZADOR, en ATMEGA328P
21:08
¿Que es el protocolo de transmision rs232?
9:06
Electronica Avanzada
Рет қаралды 85 М.
Hacker's Guide to UART Root Shells
17:40
Flashback Team
Рет қаралды 494 М.