Bläddra i källkod

update main and bugfix lib

Tobias Müller 9 månader sedan
förälder
incheckning
c1b3ed7fb6
2 ändrade filer med 99 tillägg och 20 borttagningar
  1. 2 5
      Libs/LCD_Shield/__init__.py
  2. 97 15
      main.py

+ 2 - 5
Libs/LCD_Shield/__init__.py

@@ -9,7 +9,6 @@ This file contains classes for LCD, Button and Led control.
 
 ##############################                Modules                 ##############################
 
-from time import sleep_us
 from machine import Pin, PWM, I2C
 import re
 
@@ -154,9 +153,9 @@ class LCD:
     @lcd_line_mode.setter
     def lcd_line_mode(self, lcd_line_mode: int):
         buffer = self.__check_lcd_line_mode(lcd_line_mode)
-        if lcd_line_mode:
+        if lcd_line_mode and self.__lcd_line_mode == 0:
             self.clear(row=4)
-        if lcd_line_mode == 3:
+        if lcd_line_mode == 3 and self.__lcd_line_mode != 3:
             self.clear(row=3)
         self.__lcd_line_mode = buffer
         self.__set_lcd_line_mode()
@@ -540,7 +539,6 @@ class LCD:
                    self.__lcd_control_para["DISPLAY_ROW_" + str(line)],
                    self.__lcd_control_para["CONTROL_BYTE_RS"])
             self.__i2c.writeto(self.__i2c_address,bytes(tmp))
-            sleep_us(10000)
             tmp = self.__i2c.readfrom(self.__i2c_address,11)
             tmp = list(tmp[1:])
             tmp = [chr(tmp[i]) for i in range(0, len(tmp))]
@@ -549,7 +547,6 @@ class LCD:
             if "column" in keywords.keys() and line == row:
                 tmp = tmp[column - 0x01]
             buffer.append("".join(tmp))
-            sleep_us(10000)
         if not separate:
             return remove_whitespace("".join(buffer))
         else:

+ 97 - 15
main.py

@@ -13,7 +13,7 @@ from time import sleep_us
 from machine import Pin
 
 ##############################            Global Variables            ##############################
-
+Display = LCD()
 
 ##############################                 Main                   ##############################
 
@@ -23,23 +23,105 @@ def main():
     """
 
     ##########################           Local Variables            ############################
-    
-    led = Pin(28,Pin.OUT)
-    led.on()
-    sleep_us(5000000)
-    led.off()
+    button_up = Pin(6,Pin.IN,Pin.PULL_DOWN)
+    button_down = Pin(7,Pin.IN,Pin.PULL_DOWN)
+    button_right = Pin(8,Pin.IN,Pin.PULL_DOWN)
+    button_left = Pin(9,Pin.IN,Pin.PULL_DOWN)
+    led_green = Pin(16,Pin.OUT)
+    led_red = Pin(17,Pin.OUT)
     
     ##########################                Code                  ############################
-    bar()
-   
-
-##############################               Functions                ##############################
 
-def bar():
-    """
-    Example function.
-    """
-    print("bar")
+    led_green.on()
+    led_red.on()
+    Display.lcd_line_mode = 3 
+    Display.print("Hochschule  Anhalt")
+    for _ in range(0,3):
+        for brightness in range(0,105,5):
+            Display.lcd_brightness = brightness
+            sleep_us(25000)
+        for brightness in range(0,105,5):
+            Display.lcd_brightness = 100 - brightness
+            sleep_us(20000)
+    Display.clear()
+    Display.print("LCD Shield testing:")
+    for brightness in range(0,105,5):
+        Display.lcd_brightness = brightness
+        sleep_us(20000)
+    sleep_us(2000000)
+    while True:
+        if button_up.value():
+            Display.clear()
+            Display.lcd_line_mode = 0
+            Display.print("button", row=1)
+            Display.print("up     *", row=2)
+            Display.print("* *", row=3, column=7)
+            Display.print("*", row=4, column=8)
+            led_red.off()
+            sleep_us(300000)
+            Display.clear(row=2, column=8)
+            led_red.on()
+            sleep_us(300000)
+        elif button_down.value():
+            Display.clear()
+            Display.lcd_line_mode = 0
+            Display.print("button    down   *        * *        *")
+            led_green.off()
+            sleep_us(300000)
+            Display.clear(row=4)
+            led_green.on()
+            sleep_us(300000)
+        elif button_left.value():
+            Display.clear()
+            Display.lcd_line_mode = 0
+            Display.print("button", row=1)
+            Display.print("left   *", row=2)
+            Display.print("* *", row=3, column=7)
+            Display.print("*", row=4, column=8)
+            led_green.off()
+            led_red.on()
+            sleep_us(300000)
+            Display.clear(row=3, column=7)
+            led_green.on()
+            led_red.off()
+            sleep_us(300000)
+        elif button_right.value():
+            Display.clear()
+            Display.lcd_line_mode = 0
+            Display.print("button\nright  *\n      * *\n       *")
+            led_green.off()
+            led_red.off()
+            sleep_us(300000)
+            Display.clear(row=3, column=9)
+            led_green.on()
+            led_red.on()
+            sleep_us(300000)
+        else:
+            Display.clear()
+            Display.lcd_line_mode = 2
+            led_red.on()
+            led_green.on()
+            Display.print("LCD Shield")
+            Display.print("a button", row=3, column=2)
+            for pattern in range(0,9):
+                if pattern == 0:
+                    Display.print("   push   ", row=2)
+                elif pattern == 1:
+                    Display.print(">  push  <", row=2)
+                elif pattern == 2:
+                    Display.print(">> push <<", row=2)
+                elif pattern == 3:
+                    Display.print(">>>push<<<", row=2)
+                elif pattern == 4:
+                    Display.print(" >>push<< ", row=2)
+                elif pattern == 5:
+                    Display.print("  >push<  ", row=2)
+                elif pattern == 6:
+                    Display.print("   push   ", row=2)
+                else:
+                     Display.clear(row=2)
+                sleep_us(100000)
+            
 
 ##############################                  Run                   ##############################