Ondersteuning > Programmeren
IndexError:list index out of range.
(1/1)
henkoegema:
Van een Arduino krijg ik volgende data binnen via de serial USB in een python programma
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
Python programma:
*****************************************************************
import serial
import time
arduinoData = serial.Serial('/dev/ttyUSB1', 115200)
time.sleep(1)
while True:
while(not(arduinoData.inWaiting())):
pass
dataPacket = arduinoData.readline() #formaat dataPacket: b'255,255,255\r\n'
dataPacket = str(dataPacket,'UTF-8') #formaat dataPacket: 255,255,255
splitPacket = dataPacket.split(',') #formaat splitPacket: ['255', '255', '255\r\n']
x = splitPacket[0]
y = splitPacket[1]
z = splitPacket[2]
print(x) <--------- :) # 255 als resultaat
print(y) <--------- :( # IndexError: list index out of range
print(z) <--------- :( # IndexError: list index out of range
*****************************************************************
Kan splitPacket[1] en splitPacket[2] niet printen. ???
henkoegema:
--- Citaat van: henkoegema op 2021/08/28, 15:35:43 ---Van een Arduino krijg ik volgende data binnen via de serial USB in een python programma
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
Python programma:
*****************************************************************
import serial
import time
arduinoData = serial.Serial('/dev/ttyUSB1', 115200)
time.sleep(1)
while True:
while(not(arduinoData.inWaiting())):
pass
dataPacket = arduinoData.readline() #formaat dataPacket: b'255,255,255\r\n'
dataPacket = str(dataPacket,'UTF-8') #formaat dataPacket: 255,255,255
splitPacket = dataPacket.split(',') #formaat splitPacket: ['255', '255', '255\r\n']
x = splitPacket[0]
y = splitPacket[1]
z = splitPacket[2]
print(x) <--------- :) # 255 als resultaat
print(y) <--------- :( # IndexError: list index out of range
print(z) <--------- :( # IndexError: list index out of range
*****************************************************************
Kan splitPacket[1] en splitPacket[2] niet printen. ???
--- Einde van citaat ---
De fout onstaal al bij:
y = splitPacket[1]
z = splitPacket[2]
henkoegema:
Na 2 dagen zoeken, eindelijk de fout gevonden, O0
Deze lijn (in de Arduino) was de oorzaak:
--- Code: ---if (RGB_sensor.init())
{
Serial.println("Sensor Initialization Successful\n\r");
}
--- Einde van code ---
Dit is natuurlijk geen getal. (int of float) ;)
Na deze verandering:
--- Code: ---if (RGB_sensor.init())
{
//Serial.println("Sensor Initialization Successful\n\r");
}
--- Einde van code ---
werkte het wel.
Navigatie
[0] Berichtenindex
Naar de volledige versie