Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos » Arduino y Raspberry Pi
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

04/12/2015 #1


Arduino "shiftOut()"
Hola buenas tardes! he estado trabajando con arduino y su función para trasmitir datos serie shiftOut() junto con un registro de desplazamiento, la propia función genera una secuencia similar a esta:
CLK-->HIGH "dato 0 ó 1" CLK-->LOW.
Mi problema viene cuando el registro de desplazamiento requiere por sus características técnicas que la secuencia de datos sea esta..
CLK-->LOW "dato 0 ó 1" CLK-->HIGH.
Osease al contrario.
buscando encontré esta referencia a mi problema : Note: if you\'re interfacing with a device that\'s clocked by rising edges, you\'ll need to make sure that the clock pin is low before the call to shiftOut(), e.g. with a call to digitalWrite(clockPin, LOW).

que la encontré en la pagina principal de arduino buscando shiftOut()
(siento no poner el link directo pero no me deja la pagina poner links)


El tema es que no se interpretar bien lo que me pide, tengo que colocar delante de la función shiftOut() un digitalWrite(clockPin, LOW).?? ...
04/12/2015 #2

Avatar de Scooter

No se que es lo que estás haciendo.
¿A que circuito va eso conectado?
¿Es para hacer comunicación serie asíncrona?

Edito, me parece que es síncrono. No sabría decirte, sólo he usado el spi hardware.
04/12/2015 #3

Avatar de TRILO-BYTE

el SPI a hardwares es simple de usas en el arduino supongo que con una mato atada y los ojos vendados es facil.

en otro lenguaje si tiene un poco mas de complicacion hay que definir el pin latch o enable y los pines clock y data -out y data- in ya estan definidos.

debes indicar si es un clock iniciando en flanco de subida o bajada.

en cambio en SPI a software es tan simple como complicado todo esta en el algoritmo de enviar un dato por cada clock

digamos que enviamos 00110011 debemos ir empujado nuestro dato a un solo pin por cada clock.

la ventaja de un software al hardware esta en que podemos mapear los pines que querramos en un micro ò usar spi en un micro sin spi a hardware
04/12/2015 #4


Si yo también creo que es sincrono, el dispositivo es HV513 ahora te cuelgo el el datasheet, el caso es que probé introduciendo yo los datos manualmente sin usar función. osease: digitalWrite(Pin_reloj,HIGH).... así con todos y funcionaba de la manera que te he comentado:

CLK low
LE low
Dato valido
CLK high
LE high

la cosa es hacer que la función shiftOut trabaje de esa forma.

---------- Actualizado después de 4 minutos ----------

Entonces TRILO-BYTE teniendo en cuenta que mi dispositivo funciona en flancos de subida del reloj este seria el codigo??

digitalWrite(Pin_activacion, LOW);

digitalWrite(Pin_reloj, HIGH);
shiftOut(Pin_datos,Pin_reloj,MSBFIRST,hola[i]);

digitalWrite(Pin_activacion, HIGH);
digitalWrite(led,HIGH);
04/12/2015 #5

Avatar de Scooter

He leído la documentación y parece que si.
07/02/2016 #6

Avatar de VEGATRONICA

No se exactamente que es lo que deseas hacer, pero espero que lo siguiente te sea de utilidad, ese es ejemplo basico usando la funcion "shiftOut", para un registro 74ls164.

Código:
//Ejemplo Basico para registro 76ls164
//Usando Arduino UNO

int datos = 3;
int reloj = 2;
int tiempo = 200;


void setup() {
 pinMode(datos, OUTPUT);
 pinMode(reloj, OUTPUT);
 

}

void loop() {
  
    shiftOut(datos, reloj, LSBFIRST,0b11001100);
    delay(tiempo);
 
}
En este manda el byte y quedan encedidos los leds tal cual como estan en 0b11001100, es decir 4 encendidos y 4 apagados,no especificaste que registro estas usando, si nos compartes tu codigo y tu diagrama te podriamos ayudar mejor, saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Arduino y Raspberry Pi

Cerrar
Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos » Arduino y Raspberry Pi

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.