# -*- coding: utf-8 -*- """ Created on Wed March 22 11:28:15 2023 Simple Sketch to Sweep from F1 to F2 @author: Changpuak, using elements from r_57 """ import serial import time import matplotlib.pyplot as plt import numpy as np # PLEASE DON'T FORGET TO CHANGE THE NUMBER OF THE COM PORT Tobi = serial.Serial(port='COM112', baudrate=115200, timeout=.9) time.sleep(5) # Arduinos reset, wait to start up FREQ_START = 60.0 # MHz FREQ_STOP = 80.0 # MHz FREQ_DELTA = 0.1 # MHz FREQ_SPAN = 2.0 WAIT = 1 # sec F = FREQ_START LVLA = [] LVLB = [] LVLC = [] LVLD = [] FREQ = [] x = [] def CHAT_TOBIMOD(x): Tobi.write(x.encode('utf-8')) time.sleep(0.5) data = [] line = (Tobi.readline()) while len(line) > 0: data.append(line) line = Tobi.readline() line = line.decode('utf-8') return data def EMPTY_TOBIMOD(x): time.sleep(0.5) x = b'avanti' while x != b'': x = Tobi.readline() # print(x) try: print("STARTING SWEEP ...") CHAT_TOBIMOD('SETC:1\n') # SWITCH TO CHANNEL 1 EMPTY_TOBIMOD(x) while F <= FREQ_STOP: CHAT_TOBIMOD('SETF:'+str(F)+'\n') FREQ.append(F) EMPTY_TOBIMOD(x) print("{:.3f}".format(F)+" MHz") A = str(CHAT_TOBIMOD('GETA?\n')) A = float(A[3:-9]) LVLA.append(A) B = str(CHAT_TOBIMOD('GETB?\n')) B = float(B[3:-9]) # print(B) LVLB.append(B) C = str(CHAT_TOBIMOD('GETC?\n')) C = float(C[3:-9]) # print(C) LVLC.append(C) # time.sleep(WAIT) F += FREQ_DELTA # plt.style.use('bmh') # plot fig, ax = plt.subplots() ax.plot(FREQ, LVLC, linewidth=2.0) ax.set(xlim=(FREQ_START, FREQ_STOP), xticks=np.arange(int(FREQ_START), int(FREQ_STOP), int(FREQ_SPAN)), ylim=(-80, +10), yticks=np.arange(-70, 10, 10)) plt.show() # TO PAY ATTENTION TO : np.arrange is NOT for float -> CONVERT TO kHz finally: Tobi.close() print("CONNECTION CLOSED.")