/* simple gui controlled frequency generator setup: 1. programm your Arduino 2. addapt the serial port in your python script to the serial port used on your PC 3. run the python script PC: python with tkinter and pyserial MC: any Arduino 22.05.06 first version by mchris serial communication with python and Arduino: https://create.arduino.cc/projecthub/ansh2919/serial-communication-between-python-and-arduino-e7cce0 */ #define FREQENCY_PIN 8 int frequency; void setup() { Serial.begin(115200); Serial.setTimeout(1); } void loop() { while (!Serial.available()); frequency = Serial.readString().toInt(); tone(FREQENCY_PIN,frequency); Serial.print(frequency); } // Python gui script for PC controll /* import tkinter as tk from tkinter import ttk import serial import time arduino = serial.Serial(port='/dev/ttyACM0', baudrate=115200, timeout=.1) LARGE_FONT= ("Verdana", 12) mainWindow = tk.Tk() mainWindow.geometry("1024x640") mainWindow.title('frequency controller') def sendValue(value): arduino.write(bytes(value, 'utf-8')) time.sleep(0.05) data = arduino.readline() print(data) #===================== Button ====================================== button1 = ttk.Button(mainWindow, text="100Hz", command=lambda: sendValue('100')) button1.place(x=400, y=200) button2 = ttk.Button(mainWindow, text="1000Hz", command=lambda: sendValue('1000')) button2.place(x=400, y=400) mainWindow.mainloop() */