Stap 6: PCB programmeren en testen
Zodra geassembleerd, moesten elke één van de 19 PCB's worden geprogrammeerd en getest. Eerst ik nodig voor het programmeren van de fuse-bits uit te voeren met een externe snel klok, dan geprogrammeerd met de firmware die op seriële verzoeken reageren zou door de vier sensor-waarden retourneren. Deze code nam wat werk: Ik geliquideerd de ADCs draait op volle snelheid; dat is de volgende conversie beginnen in de interrupt routine aangeroepen door voltooiing van de vorige conversie. In de interrupt routine draaide ik me op de juiste IR-LED. Na het doorlopen van alle vier IR LED's en sensoren, deed ik het opnieuw met de IR LEDs uitgeschakeld, de tijdwaarden op te slaan. Ik vervolgens afgetrokken het het op waarde van de uit waarde, geven een positief getal evenredig aan de sensormeting reflectiecoëfficiënt en genormaliseerde door de ambient IR.
Elke PCB had zijn eigen unieke adres geprogrammeerd erin. Voor het controleren van gezond verstand had ik de microcontroller knipperen uit het adres in Morse code bij het opstarten, zodat ik kon ervoor zorgen dat ik had ze goed geprogrammeerd. Alle de PCB's met de dezelfde RS-485 verbonden waren bus met een protocol "spreken-alleen-wanneer-gesproken-to": de microcontroller zet gegevens op de bus alleen in reactie op een query van de host naar het bepaalde adres. Hiermee voorkomt u dat bus twist.