Bienvenido a los foros de FT81x Manía. Te invitamos a regístrate totalmente gratis. Disfruta de tu experiencia con un grandes amigos y Staff.

Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 68
» Latest member: vwyw
» Forum threads: 151
» Forum posts: 510

Full Statistics

Online Users
There are currently 3 online users.
» 0 Member(s) | 3 Guest(s)

Latest Threads
mleczyk
NODEMCU v1.0 with GPS BMP...

Forum: ESP8266
Last Post:  mleczyk
07-09-2018, 17:33 41
» Replies: 2
» Views: 158
hal2000
GD23ZU Library

Forum: Library GD23ZU
Last Post:  hal2000
18-08-2018, 23:22 13
» Replies: 3
» Views: 155
lightcalamar
Documentación STM32F407ZG...

Forum: STM32F407
Last Post:  lightcalamar
05-08-2018, 23:50 24
» Replies: 2
» Views: 116
TFTLCDCyg
Presentacion

Forum: Presentaciones y despedias
Last Post:  TFTLCDCyg
14-07-2018, 09:10 21
» Replies: 5
» Views: 111
ddwasil
Consejos para aprender a ...

Forum: Library GD23ZU
Last Post:  ddwasil
12-07-2018, 05:17 08
» Replies: 1
» Views: 57

 
  Skippi the Bush Kangaroo
Posted by:  lightcalamar - 02-02-2018, 19:26 08 - Forum: La cantina, el Bar o el Pub - No Replies

Recuperé mi serie favorita de pequeño y que nadie se sienta aludido de un foro que conozco ...


Print this item

  Setting correct time to DS3231 clock ESP8266
Posted by:  lightcalamar - 31-01-2018, 22:21 29 - Forum: ESP8266 - No Replies

Hi all,  utility for setting correct time to DS3231 clock based on Udp NTP client with ESP8266.
You need; 

  • DS3231 Shield
  • Conection Internet
  • Upload code file attached



Attached Files
.zip   DS3231_NTP.zip (Size: 8.87 KB / Downloads: 1)
Print this item

  Code without library for SI7021
Posted by:  lightcalamar - 31-01-2018, 01:44 25 - Forum: Codigos - No Replies

This code without libray for shield SI7021.

This shield is reader temperature and humidity. To be code;

Code:
#include <Wire.h>

// SI7021 I2C address is 0x40(64)
#define si7021Addr 0x40

void setup()
{
 Wire.begin();
 Serial.begin(9600);
 Wire.beginTransmission(si7021Addr);
 Wire.endTransmission();
 delay(300);
}

void loop()
{
 unsigned int data[2];

 Wire.beginTransmission(si7021Addr);
 //Send humidity measurement command
 Wire.write(0xF5);
 Wire.endTransmission();
 delay(500);

 // Request 2 bytes of data
 Wire.requestFrom(si7021Addr, 2);
 // Read 2 bytes of data to get humidity
 if(Wire.available() == 2)
 {
   data[0] = Wire.read();
   data[1] = Wire.read();
 }

 // Convert the data
 float humidity  = ((data[0] * 256.0) + data[1]);
 humidity = ((125 * humidity) / 65536.0) - 6;

 Wire.beginTransmission(si7021Addr);
 // Send temperature measurement command
 Wire.write(0xF3);
 Wire.endTransmission();
 delay(500);

 // Request 2 bytes of data
 Wire.requestFrom(si7021Addr, 2);

 // Read 2 bytes of data for temperature
 if(Wire.available() == 2)
 {
   data[0] = Wire.read();
   data[1] = Wire.read();
 }

 // Convert the data
 float temp  = ((data[0] * 256.0) + data[1]);
 float celsTemp = ((175.72 * temp) / 65536.0) - 46.85;
 float fahrTemp = celsTemp * 1.8 + 32;

 // Output data to serial monitor
 Serial.print("Humidity : ");
 Serial.print(humidity);
 Serial.println(" % RH");
 Serial.print("Celsius : ");
 Serial.print(celsTemp);
 Serial.println(" C");
//  Serial.print("Fahrenheit : ");
//  Serial.print(fahrTemp);
//  Serial.println(" F");
 delay(1000);
}

Source from; Learming ESP8266

Work fine 100%.  Angry

Attasment DataSheet. Please learming page 18 form file. Commend I2C

Code for screen FT81x with library GD2xx;

Code:
void meteo() {

 do {
 
 GD.get_inputs();  
 GD.ClearColorRGB(0x000025);
 GD.Clear();
 
 GD.Tag(1);
 GD.cmd_fgcolor(0xff0000);
//  GD.cmd_romfont(1, 32);
 GD.cmd_button(30, 35, 100, 65, 30, OPT_FLAT, "Salir"); GD.Tag(255);
    if (GD.inputs.tag == 1) { delay(175); menu(); }
   
//  char buffer[10];
//  GD.ColorRGB(CYAN);
//  sprintf(buffer,"%02d:%02d:%02d", hour, minute, second );
//  GD.cmd_text(720, 40, 30, OPT_CENTER, buffer );  
//  GD.ColorRGB(WHITE);    

//  GD.SaveContext();
//  lineas();                
//  GD.RestoreContext();

// CODIGO DEL SI7021 SIN LIBRERIA
 unsigned int data[2];

 Wire.beginTransmission(SI7021_ADDR);
 //Send humidity measurement command
 Wire.write(0xF5);
 Wire.endTransmission();
 delay(500);

 // Request 2 bytes of data
 Wire.requestFrom(SI7021_ADDR, 2);
 // Read 2 bytes of data to get humidity
 if(Wire.available() == 2) {
   data[0] = Wire.read();
   data[1] = Wire.read();
 }

 // Convert the data
 float humidity  = ((data[0] * 256.0) + data[1]);
 humidity = ((125 * humidity) / 65536.0) - 6;

 Wire.beginTransmission(SI7021_ADDR);
 // Send temperature measurement command
 Wire.write(0xF3);
 Wire.endTransmission();
 delay(500);

 // Request 2 bytes of data
 Wire.requestFrom(SI7021_ADDR, 2);

 // Read 2 bytes of data for temperature
 if(Wire.available() == 2) {
   data[0] = Wire.read();
   data[1] = Wire.read();
 }

 // Convert the data
 float temp  = ((data[0] * 256.0) + data[1]);
 float celsTemp = ((175.72 * temp) / 65536.0) - 46.85;
 float fahrTemp = celsTemp * 1.8 + 32;

 // Output data to serial monitor
 Serial.print("Humedad : ");
 Serial.print(humidity);
 Serial.println(" % RH");
 Serial.print("temperatura : ");
 Serial.print(celsTemp);
 Serial.println(" C");

 Serial.print("Fahrenheit : ");
 Serial.print(fahrTemp);
 Serial.println(" F");  

 GD.ColorRGB(0xffffff);

// Humidity  
char humedad[15];
char mi_humedad[50];
 dtostrf(humidity, 10, 2, humedad);
 sprintf (mi_humedad,"%s", humedad);

 GD.cmd_text(200, 350, 30, 0, "Humedad  = ");
 GD.cmd_text(410, 350, 30, 0, mi_humedad);
 GD.cmd_text(541, 350, 30, 0, "%");  

// Temperature C    
char grados[15];
char mis_grados[50];
 dtostrf(celsTemp, 10, 2, grados);
 sprintf (mis_grados,"%s", grados);

 GD.cmd_text(200, 415, 30, 0, "Temperatura  = ");
 GD.cmd_text(410, 415, 30, 0, mis_grados);
 GD.cmd_text(531, 415, 22, 0, "o");
 GD.cmd_text(541, 415, 30, 0, "C");  

// Temperature F
char gradosF[15];
char mis_gradosF[50];
 dtostrf(fahrTemp, 10, 2, gradosF);
 sprintf (mis_gradosF,"%s", gradosF);

 GD.cmd_text(200, 285, 30, 0, "Farenheind  = ");
 GD.cmd_text(410, 285, 30, 0, mis_gradosF);
//  GD.cmd_text(531, 415, 22, 0, "o");
 GD.cmd_text(541, 285, 30, 0, "F");  
 
 delay(1000);
// --------------------------------------------------->    
   
  GD.swap();
 } while(1);
}



Attached Files
.pdf   Si7021-A20.pdf (Size: 1.56 MB / Downloads: 0)
Print this item

  Uso de millis como medio de control
Posted by:  TFTLCDCyg - 30-01-2018, 21:31 49 - Forum: Codigos - Replies (2)

A veces tenemos que usar con un controlador basado en tiempo para conseguir alguna acción determinada. La mejor forma de conseguirlo es usando un reloj externo, basando el contador en la hora, minuto o segundo que nos reporte el RTC. También podemos conseguir algo similar con la función millis, si podemos permitirnos algo de error en los valores de tiempo.

Code:
#include <GD2UD.h>

long previousMillis = 0, interval = 500;  //0.5 seg
int Control= 0;

void setup() {
GD.begin();
MP();
}
void loop() {}

void MP()
{
 while(1)
 {
  Identificador();

  GD.ClearColorRGB(0x000055);
  GD.Clear();
  GD.cmd_number(215, 110, 31, OPT_RIGHTX, Control);
  GD.swap();  
 }
}

void Identificador()
{
 unsigned long currentMillis = millis();        
 if(currentMillis - previousMillis > interval)
   {
    previousMillis = currentMillis;  
    Control = Control + 1;
    if(Control>=2){Control = 0;}
   }
}

El tiempo de espera lo podemos ajustar modificando la variable interval, la variable que se modificará entre dos parámetros: 0 y 1, es la variable Control, de esta forma podemos tener un switch digital, independiente de las rutinas de control en función de un tiempo de espera.

La ventaja es que no afectará otras funciones del programa, ya que al usar millis, no tenemos alguna interrupción en los tiempos de espera como la que ocurre con delay por ejemplo. 

Además, el intervalo de espera también lo podemos ajustar en tiempo real, asignando un botón dentro del programa. Nuevamente sin afectar la continuidad del proyecto.

Print this item

  Reconstruye una imagen con un tennsy 3.6 y luego muéstrala en el ft811
Posted by:  FlorianGermé - 30-01-2018, 19:17 26 - Forum: Teensy - Replies (3)

En francais (l'orriginal)
Reconstituer une image avec une fille 3.6 puit l'afficher sur le ft811
Bonjours, j'aimerais contourner la limite des 2048 instructions/image en reconstituent des partie de l'image avec le cpu "teensy" puis le charger dans le ft811. Mais je n'arrive pas à comprendre comment son fait les "asset" et comment les manipuler,
pouvez vous m'aider svp

En español (google trad)
Reconstruire un imagen con un 3.6 y luego mústrala en el ft811
Hola, me gustaría trabajar alrededor del límite de 2048 instrucciones / imagen para reconstituir parte de la imagen con la CPU "teensy" y luego cargarla en el ft811. Pero no puedo entender cómo funciona el "asset" y cómo manejarlo,
puedes ayudarme por favor

Print this item