Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ssd1306.h"
- #include "nano_gfx.h"
- // Attiny SPI PINS: connect LCD to D4 (D/C), GND (CS), D3 (RES), D1(DIN), D2(CLK)
- float usd(int trigger) {
- float dur, dist;
- pinMode(trigger, OUTPUT);
- digitalWrite(trigger, LOW); // set the trigger pin LOW
- delayMicroseconds(2);
- digitalWrite(trigger, HIGH); // set the trigger pin HIGH for 10μs
- delayMicroseconds(10);
- digitalWrite(trigger, LOW);
- pinMode(trigger, INPUT);
- dur = pulseIn(trigger, HIGH); // measure the echo time (μs)
- dist = ((dur/2.0)*0.0343)/2; // convert echo time to distance (cm)
- return dist;
- }
- void setup() {
- // put your setup code here, to run once:
- ssd1331_96x64_spi_init(3, -1, 4);
- ssd1306_clearScreen();
- ssd1306_setFixedFont(ssd1306xled_font6x8);
- ssd1306_setColor(RGB_COLOR8(255,255,255));
- }
- void loop() {
- char result[8]; // Buffer big enough for 7-character float
- char cm[3] = "cm ";
- char finally[11];
- float distance = 0;
- float a = 0;
- int vari = 0;
- while (vari < 5) {
- a = usd(0);
- while (a > 400) {
- a = usd(0);
- }
- distance += a;
- vari++;
- }
- distance = distance/5;
- dtostrf(distance, 6, 2, result); // Leave room for too large numbers!
- strcpy(finally, result);
- strcat(finally, cm);
- ssd1306_printFixed2x(0, 16, finally, STYLE_NORMAL);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement