Autor Tema: hx711  (Leído 358 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado yuhe

  • PIC12
  • **
  • Mensajes: 76
hx711
« en: 11 de Diciembre de 2019, 11:50:16 »
Buenas Familia , estoy liado con un nuevo proyecto y para el cual voy a usar el hx711 pero no se como leer los dato , me podeis echar una mano?
un saludo. :-/

Desconectado Diego E.

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1078
Re:hx711
« Respuesta #1 en: 11 de Diciembre de 2019, 12:08:34 »
Hola amigo, yo acabé de realizar una aplicación con este módulo, este fue el código que implementé para la lectura

Código: CSS
  1. long long leer_HX711()
  2. {
  3.         long long dato_hx711;
  4.         int i;
  5.        
  6.         if(!bit_test(dat))
  7.         {      
  8.                 dato_hx711 = 0;
  9.                 for(i=0;i<24;i++)
  10.                 {              
  11.                         dato_hx711 = dato_hx711 << 1;
  12.                         bit_set(clk);
  13.                         delay_us(10);
  14.                         if(bit_test(dat))
  15.                                 {bit_set(dato_hx711,0);}
  16.                         else
  17.                                 {bit_clear(dato_hx711,0);}
  18.                
  19.                         bit_clear(clk);
  20.                         delay_us(10);  
  21.                 }
  22.                
  23.                 bit_set(clk);
  24.                 delay_us(10);
  25.                 bit_clear(clk);
  26.                        
  27.                 dato_hx711 = dato_hx711^0x800000;
  28.                
  29.                 return(dato_hx711);            
  30.         }      
  31. }

Desconectado yuhe

  • PIC12
  • **
  • Mensajes: 76
Re:hx711
« Respuesta #2 en: 20 de Diciembre de 2019, 06:13:31 »
Mil gracias Diego , pero me lo podrias pasar a pbp , no lo entiendo en ese lenguaje, y de nuevo mil gracias

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1117
Re:hx711
« Respuesta #3 en: 20 de Diciembre de 2019, 15:33:21 »
Mil gracias Diego , pero me lo podrias pasar a pbp , no lo entiendo en ese lenguaje, y de nuevo mil gracias

Que tal yuhe,

Que versión de PBP estás usando?
Cuál es el microcontrolador que estás usando?

elreypic.

Desconectado yuhe

  • PIC12
  • **
  • Mensajes: 76
Re:hx711
« Respuesta #4 en: 23 de Diciembre de 2019, 10:01:56 »
buenas 2.60 y micro un 16f887A

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1117
Re:hx711
« Respuesta #5 en: 24 de Diciembre de 2019, 01:36:05 »
Que tal yuhe,

antes que nada debes saber que PBP no maneja variables de 32bits a menos que uses un microcontrolador de la seie PIC18 y usando el compilador PBPL. Este no es tu caso, ya que estás usando el microcontrolador PIC16F887A. Por lo tanto tendremos que usar tres variables del tipo byte para realizar la lectura. PBP tampoco tiene funciones, solo subrutinas, así que lo que haremos será la siguiente:

Código: [Seleccionar]
'************************************
'Definición de variables
'************************************
dato_hx711_H    var    byte     'parte alta del resultado del ADC del hx711
dato_hx711_M    var    byte     'parte media del resultado del ADC del hx711
dato_hx711_L     var    byte     'parte baja del resultado del ADC del hx711
i      var      byte                     'Variable auxiliar para cilocs FOR

'************************************
'Definición de puertos
'************************************
dat     var    PORTB.0
clk      var    PORTB.1

'****************************************
'       Subrutina para leer el hx711
'    ENTRADAS: Ninguna
'    SALIDAS: dato_hx711_H, dato_hx711_M y dato_hx711_L
'*********************************************
Leer_HX711:
        if (dat = 0) then
             dato_hx711_H=0
             dato_hx711_M=0
             dato_hx711_L=0
             for i = 0 to 7
                  dato_hx711_H = dato_hx711_H<<1
                  High clk
                  Pauseus 10
                  if (dat=1) then
                       High dato_hx711_H.0
                  else
                       Low dato_hx711_H.0
                  endif
                  Low  clk
                  Pauseus 10
             Next i
             for i = 0 to 7
                  dato_hx711_M = dato_hx711_M<<1
                  High clk
                  Pauseus 10
                  if (dat=1) then
                       High dato_hx711_M.0
                  else
                       Low dato_hx711_M.0
                  endif
                  Low  clk
                  Pauseus 10
             Next i
             for i = 0 to 7
                  dato_hx711_L = dato_hx711_L<<1
                  High clk
                  Pauseus 10
                  if (dat=1) then
                       High dato_hx711_L.0
                  else
                       Low dato_hx711_L.0
                  endif
                  Low  clk
                  Pauseus 10
             Next i
             High clk
             Pauseus 10
             Low clk
             dato_hx711_H = dato_hx711_H^$80
             dato_hx711_M = dato_hx711_M^$00
             dato_hx711_L = dato_hx711_L^$00
        endif
        return

Espero esto te ayude en tu proyecto.

elreypic.

Desconectado yuhe

  • PIC12
  • **
  • Mensajes: 76
Re:hx711
« Respuesta #6 en: 26 de Diciembre de 2019, 07:03:03 »
 ((:-)) ((:-)) ((:-)) ((:-)) ((:-)) ((:-)) mil gracias elreypic2 mil gracias ((:-)) ((:-)) ((:-)) ((:-)) ((:-))


 

anything