Причина є загальною для всіх світлодіодних програм, а не лише Raspberry Pi (або штифтів GPIO).
Світлодіод може пропустити стільки струму, перш ніж він знищить себе (дуже яскраво!). Максимальний струм змінюється залежно від розміру та кольору світлодіода, але для червоного світлодіода середнього розміру зазвичай можна вважати 20 мА (перевірити це значення, хоча, якщо у вас специфікаційний лист для світлодіода зручний - і крихітні світлодіоди можуть працювати лише з крихітна частка цього).
У звичайного червоного світлодіода зазвичай падіння напруги становить близько 1,7 В, тому значення резистора можна вибрати для передачі 20 мА при (напруга - 1,7). Якщо припустити вхід 5 В, це означає резистор, який пропустить 20 мА при 3,3 В, що (використовуючи Закон Ома) дає нам абсолютний мінімальний опір 165 Ом.
Найгірше, що може статися за допомогою більшого резистора, - це те, що світлодіод буде тьмянішим, ніж його максимальна яскравість, і тому для розміщення менших світлодіодів, які можуть пропускати лише 10 мА, не рідкість використовувати 330 Ом і вище.
Я б поклав резистор 470 Ом на джерело живлення 5 В для червоного світлодіода середнього розміру, і якщо світлодіод занадто тьмяний, то трохи зменшіть його.
Якщо ви користуєтеся мініатюрним червоним світлодіодом, то 1 К Ом не здасться обурливим, а для більш екзотичних кольорів (зокрема синього, рожевого та білого) вам захочеться самі порахувати значення.