Python Forum
[Tkinter] Tkinter widgets driving Arduino uno output pins
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] Tkinter widgets driving Arduino uno output pins
#3
Program is partial working. I am able to turn pin 13 on and off. What I am trying to do is have "true" feed back when the pin changes state. I am trying to send pin 13 status ("1" or "0") to a tkinter label widget in python (below the "Exit" button) If I run using serial monitor everything works correctly. I get the text "Hello" and when I push the on button I get a "1" (no quotes) and when I push the off button I get a "0" (no quotes). Pushing Exit quits the program. Since I wrote this I am getting "PY_VAR1 in my label field. I believe this is a python problem, I will also post to Arduino. Thanks for you help in advance

Jim

#! /usr/bin/env python

import serial
import time
from tkinter import *


ArduinoSerial = serial.Serial('com3', 9600, timeout=.1)
time.sleep(2)
global status1

def led_on():
    ArduinoSerial.write(b'1')
    status1 = (ArduinoSerial.readline() .decode('utf-8').strip())
    print(status1)

def led_off():
    ArduinoSerial.write(b'0')
    status1 = (ArduinoSerial.readline().decode('utf-8').strip())
    print(status1)

def led_Exit():
    ArduinoSerial.write(b'0')
    status1 = "Quit"
    print(status1)
    quit()

root = Tk()
status1 = StringVar()
root.title("Arduino Push Buttons")
btn1 = Button(root, text="Led on", command=led_on)
btn2 = Button(root, text="Led off", command=led_off)
btn3 = Button(root, text="Exit", command=led_Exit)
msg1 = Label (root, textvariable = status1, relief=RAISED,width = 20)
btn1.pack()
btn2.pack()
btn3.pack()
msg1.pack()
status1.set(StringVar())
root.mainloop()

  1. ARDUINO CODE
    
    int data;
    
    void setup() 
    { 
      Serial.begin(9600); //initialize serial COM at 9600 baudrate
      pinMode(13, OUTPUT); //make the LED pin (13) as output
      digitalWrite (13, LOW);
    } 
    void loop() 
    {
      if (Serial.available()> 0)
      {
        data = Serial.read();
      }
       if (data == '1')
        {
        digitalWrite (13, HIGH); 
        Serial.println(digitalRead(13));
        data = '2';
        }
       else if (data == '0')
        {
        digitalWrite (13, LOW);
        Serial.println(digitalRead(13));
        data = '2';
        }
    }
    ARDUINO CODE
Reply


Messages In This Thread
RE: Tkinter widgets driving Arduino uno output pins - by woodcncwnc - Jan-11-2018, 05:40 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  make widgets disappear from tkinter jacksfrustration 12 1,176 Feb-06-2024, 03:58 PM
Last Post: deanhystad
  Tkinter | entry output. Sap2ch 1 2,012 Sep-25-2021, 12:38 AM
Last Post: Yoriz
  .get() from generated Entry widgets in tkinter snakes 4 4,247 May-03-2021, 11:26 PM
Last Post: snakes
  Super basic tkinter arduino issue Kurta 3 2,426 Jan-07-2021, 05:22 PM
Last Post: deanhystad
  [Tkinter] acceleration of data output in treeview tkinter Vladimir1984 4 4,229 Nov-21-2020, 03:43 PM
Last Post: Vladimir1984
  Displaying output in GUI ( Tkinter) Zouloutamtam 7 18,478 Sep-29-2020, 02:08 PM
Last Post: Zouloutamtam
  Using Tkinter widgets on child window chewy1418 8 7,251 Feb-27-2020, 10:34 PM
Last Post: Marbelous
  Active tkinter text output during loop dvanommen 2 10,800 Oct-18-2019, 02:23 PM
Last Post: dvanommen
  sQlite3 output to tkinter treeview - how do I set / increase width of the output? dewijones67 5 6,674 Jan-23-2019, 08:45 AM
Last Post: Larz60+
  [Tkinter] tkinter - unexpected output - don't know how func is triggered before calling omm 8 4,506 Dec-11-2018, 08:09 PM
Last Post: Gribouillis

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020