from machine import Pin
import time
sclk = Pin(10, Pin.OUT)
mosi = Pin(11, Pin.OUT)
miso = Pin(12, Pin.IN)
cs = Pin(13, Pin.OUT)
sclk.value(0)
cs.value(1)
def spi_transfer_byte(data_out):
data_in = 0
cs.value(0)
for i in range(8):
bit_to_send = (data_out >> (7 - i)) & 1
mosi.value(bit_to_send)
sclk.value(1)
if miso.value() == 1:
data_in |= (1 << (7 - i))
sclk.value(0)
cs.value(1)
return data_in
print("SPI Ready!")
print("Type a message and press Enter:")
while True:
user_text = input().strip()
if user_text:
received_text = ""
for char in user_text:
byte_to_transmit = ord(char)
received_byte = spi_transfer_byte(byte_to_transmit)
received_text += chr(received_byte)
print(f"Original String : {user_text}")
print(f"Received String : {received_text}")
print("-" * 10)