Eerst even een vraagje. Is het een school opdracht, is het voor de hobby, of is het een professionele oplossing? Voor de eerste twee geld dat je daar wel een modelbouw-servo voor kunt gebruiken, voor de laatste geld: is eigenlijk geen goede oplossing.
Ik neem aan dat de Raspi in de slaapstand gaat en niet het servo board? Want de servo moet niet in de slaapstand gaan "als dat al mogelijk is met dat board" omdat hij anders zijn positie niet behoud.
Ik zou het zo doen: Je neemt een kleine microcontroller, dat kan bijv. een PIC zijn of een Atmel of een Arduino uno, of een ander type. Dan ben je niet afhankelijk van de data die uit de Raspi komt als hij uit de slaap stand gaat.
Heb een voorbeeldje gemaakt met een pic 12F683. Is gemaakt in basic, maar dat kan ook in C.
Hierbij heb je ook geen I2C nodig, gewoon een uitgang op je Raspi. Je zou er een optocoupler tussen kunnen zetten als level shifter, maar dat moet je maar even bekijken of dat nodig is.
Als de ingang van de pic hoog is staat de servo in positie 1000. En als de ingang van de pic laag is staat de servo in positie 2000. Die waardes kun je aan passen naar jou wens. Je kunt eventueel ook nog een kleine pauze toevoegen mocht dat nodig zijn.
pic basic code:
Device 12F683
Xtal 10
Config HS_OSC,_
WDT_OFF,_
PWRTE_ON,_
MCLRE_OFF
All_Digital TRUE
Symbol IN_1 = GPIO.0
Symbol SERVO_MOTOR = GPIO.2
Clear
GPIO = %000000
TRISIO = %000001
RUN:
If IN_1 = 1 Then
Servo SERVO_MOTOR, 1000
DelayMS 10
EndIf
If IN_1 = 0 Then
Servo SERVO_MOTOR, 2000
DelayMS 10
EndIf
GoTo RUN
End
Zorg er voor dat je klep net afsluit zodat de servo niet te hard tegen de aanslag staat te drukken, als de klep net dicht is moet het goed zijn. Als je dat niet doet zal de servo heet worden en niet lang mee gaan, plus dat hij een hoop stroom staat te verbruiken.
Hier heb je nog wat info over het werken met servo's, lees het eens rustig door, misschien kun je er nog iets uithalen.
https://www.circuitsonline.net/artikelen/view/48