Paso 9: Actualizar: añade un sensor de ultrasonidos y modificado programa simplemente actualizan los números de
#define sclk 4
#define mosi 5
#define cs 6
#define dc 7
#define rst 8 / esto puede conectar el reset Arduino
#define ANALOG_IN 0 / / para CD sensor de luz
#define TRIGGER_PIN 12 / / pin Arduino atado para activar el pin en el sensor de ultrasonidos.
#define ECHO_PIN 11 / / atado de Arduino pin a pin en el sensor ultrasónico del eco.
#define MAX_DISTANCE 200 / / distancia máxima queremos ping para (en centímetros). Distancia máxima del sensor está valorada en 400-500cm.
#include < Adafruit_GFX.h > / / Biblioteca de gráficos de base
#include < Adafruit_ST7735.h > / / específicos de Hardware de biblioteca
#include < SPI.h >
#include < dht11.h > / / dht del biblioteca de sensor de humedad
#include < NewPing.h > / / sensor ultrasónico de S04 biblioteca
dht11 DHT11;
Tft de Adafruit_ST7735 = Adafruit_ST7735 (cs, dc, mosi, sclk, rst);
Sonar de NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); NewPing instalación de pernos y distancia máxima.
void setup(void) {}
DHT11.Attach(2); Configurar puerto digital 2 DHT sentido entrada
Serial.Begin(115200);
Serial.Print("Hello!");
tft.initR(INITR_BLACKTAB); inicializar una ficha de chip, negro ST7735S
Serial.println("init");
tft.setRotation(tft.getRotation()+1); Comentario para rotar pantalla
tiempo de uint16_t = millis();
tft.fillScreen(ST7735_BLACK);
tiempo = millis() - tiempo;
Serial.println (tiempo, DEC);
Delay(500);
Serial.println("Done");
Delay(1000);
tftPrintTest();
Delay(500);
tft.fillScreen(ST7735_BLACK); Limpiar la pantalla
comentado líneas abajo son red y cuadrado salpicadura pantalla
optimizado de las líneas
testfastlines (ST7735_RED, ST7735_BLUE);
Delay(500);
testdrawrects(ST7735_GREEN);
Delay(500);
tft.fillScreen(ST7735_BLACK);
}
void loop() {}
tft.invertDisplay(true);
Delay(500);
tft.invertDisplay(false);
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(1);
tft.setCursor(0,0);
TFT.println ("boceto ha sido");
TFT.println ("corriente para:");
tft.setCursor (50, 20);
tft.setTextSize(2);
tft.setTextColor (ST7735_BLUE, ST7735_BLACK);
TFT.Print(Millis() / 1000);
tft.setTextSize(1);
tft.setCursor (40, 40);
tft.setTextColor(ST7735_WHITE);
TFT.println("seconds");
tft.setCursor (0, 60);
tft.drawLine (0, 50, (tft.width)-1, 50, ST7735_WHITE);
tft.setTextColor(ST7735_YELLOW);
TFT.Print ("Temperature (C):");
tft.setTextColor (ST7735_GREEN, ST7735_BLACK);
TFT.println((float)DHT11.temperature,1);
tft.setTextColor(ST7735_WHITE);
TFT.Print ("humedad (%):");
tft.setTextColor (ST7735_RED, ST7735_BLACK);
TFT.println((float)DHT11.humidity,1);
tft.setTextColor(ST7735_YELLOW);
TFT.Print ("temperatura (F):");
tft.setTextColor (ST7735_GREEN, ST7735_BLACK);
TFT.println(DHT11.Fahrenheit(), 1);
tft.setTextColor(ST7735_YELLOW);
TFT.Print ("temperatura (K):");
TFT.Print("");
tft.setTextColor (ST7735_GREEN, ST7735_BLACK);
TFT.println(DHT11.Kelvin(), 1);
tft.setTextColor(ST7735_WHITE);
TFT.Print ("Dew Point (C):");
tft.setTextColor (ST7735_RED, ST7735_BLACK);
TFT.println(DHT11.dewPoint(), 1);
tft.setTextColor(ST7735_WHITE);
TFT.Print("DewPointFast(C):");
tft.setTextColor (ST7735_RED, ST7735_BLACK);
TFT.println(DHT11.dewPointFast(), 1);
tft.drawLine (0, 110, (tft.width)-1, 110, ST7735_WHITE);
tft.setCursor(0,115);
TFT.Print ("intensidad de la luz");
int val = analogRead(ANALOG_IN);
tft.setCursor (60, 130);
tft.setTextColor (ST7735_YELLOW, ST7735_BLACK);
TFT.println (val, 1);
Delay(2000);
Delay(500); Esperar 50ms entre pings (pings alrededor de 20 por segundo). 29ms debería ser el retraso más corto entre pings.
unsigned int nos = sonar.ping(); Enviar ping, ping tiempo en microsegundos (uS).
tft.setCursor(0,130);
tft.setTextColor(ST7735_RED);
TFT.Print ("distancia:");
tft.setTextColor (ST7735_YELLOW, ST7735_BLACK);
TFT.Print(US / US_ROUNDTRIP_CM); Convertir el tiempo de ping de distancia e imprimir el resultado (0 = distancia fija exterior gama, no echo ping)
tft.setTextColor(ST7735_RED,ST7735_BLACK);
TFT.Print ("cm");
Delay(50);
tft.fillScreen(ST7735_BLACK);
}
void tftPrintTest() {}
tft.setTextWrap(false);
tft.fillScreen(ST7735_BLACK);
tft.setCursor (0, 10);
tft.setTextColor(ST7735_WHITE);
tft.setTextSize(1);
TFT.println("
Delay(500);
tft.setCursor (0, 60);
tft.setTextColor(ST7735_RED);
tft.setTextSize(2);
TFT.println("TEMPERATURE");
tft.setTextColor(ST7735_YELLOW);
tft.setTextSize(2);
TFT.println("Humidity");
tft.setTextColor(ST7735_GREEN);
tft.setTextSize(2);
TFT.println("monitor");
tft.setTextColor(ST7735_BLUE);
tft.setTextSize(3);
TFT.Print(3598865);
Delay(50);
}
void testfastlines (uint16_t color1, color2 uint16_t) {}
tft.fillScreen(ST7735_BLACK);
para (int16_t y = 0; y < tft.height(); y += 5) {}
tft.drawFastHLine (0, y, tft.width(), color1);
}
para (int16_t x = 0; x < tft.width(); x+= 5) {}
tft.drawFastVLine (x, 0, tft.height(), color2);
}
}
void testdrawrects (color uint16_t) {}
tft.fillScreen(ST7735_BLACK);
para (int16_t x = 0; x < tft.width(); x+= 6) {}
tft.drawRect (tft.width () / 2 - x / 2, (tft.height) / 2 - x / 2, x, x, color);
}
}