Facebook
From Sweet Cassowary, 5 Years ago, written in Plain Text.
This paste is a reply to Re: Re: Re: Re: Re: Re: Re: Untitled from Gracious Cheetah - view diff
Embed
Download Paste or View Raw
Hits: 406
  1. #include <SPI.h>
  2. #include <Wire.h>
  3. #include <Adafruit_GFX.h>
  4. #include <Adafruit_SSD1306.h>
  5. #define sensor PD5
  6. Adafruit_SSD1306 display(128 ,64, &Wire);
  7.  
  8. int previous_state;
  9. unsigned long time1, time2, calc;
  10. float to_disp, to_disp_2;
  11.  
  12.  
  13. void setup() {
  14.   pinMode(sensor, INPUT);
  15.  
  16.   Serial.begin(9600);
  17.   Serial.println("Dzialam...");
  18.   // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  19.   display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  20.   Serial.println("Init OLED");
  21.   display.display();
  22.   delay(2000);
  23.   display.clearDisplay ();
  24.   display.setTextSize(1);
  25.   display.setTextColor(WHITE);
  26.   display.setCursor(0,0);
  27.   display.println(F("Laser"));
  28.   display.setCursor(12,10);
  29.   display.println(F("Shutter"));
  30.   display.setCursor(24,20);
  31.   display.println(F("Tester"));
  32.   display.setCursor(90,50);
  33.   display.println(F("v. 1.0a"));
  34.   display.display();
  35.   Serial.println("Wyswietlilem powitanie");
  36.   delay(3000);
  37.   display.clearDisplay();
  38.   display.setTextSize(3);
  39.   display.setTextColor(WHITE);
  40.   display.setCursor(20,20);
  41.   display.println(F("Ready..."));
  42.   display.display();
  43.   Serial.println("Wyswietlilem status");
  44.   previous_state=0;
  45.   Serial.println("Ustawiam status na 0");
  46. }
  47.  
  48. void wyswietl(float wartosc)
  49. {
  50.   to_disp = float(wartosc)/1000;
  51.   display.clearDisplay();
  52.   if (to_disp <1.0 )
  53.     {
  54.       to_disp_2 = 1.0/to_disp;
  55.       display.setTextSize(2);           // Normal 1:1 pixel scale
  56.       display.setCursor(20,14);
  57.       display.println(F("1"));
  58.       display.drawLine(5,32,42,32, WHITE);
  59.       display.setCursor(25,34);
  60.       display.println(to_disp_2,2);
  61.       display.drawLine(50,0,50,64, WHITE);
  62.       display.setCursor(60,24);
  63.       display.println(to_disp,3);
  64.       display.setCursor(110,23);
  65.       display.println(F("[s]"));
  66.       Serial.println("Wyswietlilem obliczenia < 1");
  67.     }
  68.   else
  69.     {
  70.     display.setCursor(15,20);
  71.     display.println(to_disp,3);
  72.     display.setCursor(100,20);
  73.     display.println(F("s"));
  74.     Serial.println("Nie mam co wyswietlic");
  75.     }
  76.   display.display();
  77. }
  78.  
  79.  
  80. void loop() {
  81.   int sensorState = digitalRead(sensor);
  82.  
  83.   if (previous_state == 0 && sensorState == LOW)
  84.     {
  85.       time1 = millis();
  86.       previous_state = 1;
  87.       Serial.println("zmiana statusu");
  88.     }
  89.   if (previous_state == 1 && sensorState == HIGH)
  90.     {
  91.       calc = millis() - time1;
  92.       wyswietl(calc);
  93.       Serial.println("Wyslalem do wyswietlacza");
  94.       previous_state = 0;
  95.     }
  96. Serial.println(sensorState);
  97. Serial.print(" --- ");
  98. Serial.print(previous_state);
  99. delay(100);
  100. }