Private Sub Download_Kompas3() Rem versie waarbij motor wordt gebruikt om Rem kompas te draaien Const break = 11 'naam Var 11 Const pos = 10 Const dif = 9 Const azimuth = 8 With RCX .SelectPrgm SLOT3 .BeginOfTask MAIN Rem noodstop .SetSensorType SENSOR_1, SWITCH_TYPE .SetSensorMode SENSOR_1, BOOL_MODE, 0 Rem kompas sensor .SetSensorType SENSOR_2, LIGHT_TYPE .SetSensorMode SENSOR_2, RAW_MODE, 0 .SetVar break, CON, 0 .SetVar pos, CON, 0 .SetVar dif, CON, 0 'doel .SetVar azimuth, CON, 1 '1 = N, 2 = NO, 3=O, 4=ZO, 5=Z, 6=ZW, 7=W, 8=NW .StartTask 1 'noodstop .StartTask 2 'positie lezen .EndOfTask Rem *********************************************** Rem controleert of de aan/uit schakelaar wordt gedrukt Rem *********************************************** .BeginOfTask 1 .SetVar break, CON, 0 .Loop CON, FOREVER .If SENVAL, SENSOR_1, EQ, CON, 1 'sensor staart active .SumVar break, CON, 1 .If VAR, break, EQ, CON, 2 .SetVar break, CON, 0 .EndIf .EndIf .Wait CON, MS_500 '300 .EndLoop .EndOfTask Rem *********************************************** Rem main program loop Rem *********************************************** .BeginOfTask 2 '*******main program *********** .SetRwd MOTOR_A .On MOTOR_A ' verplaats uit startpositie .Wait CON, SEC_2 .Off MOTOR_A .SetFwd MOTOR_A .Loop CON, FOREVER 'net zolang draaien totdat pos = azimuth .On MOTOR_A 'Noorden .If SENVAL, SENSOR_2, EQ, CON, 863 .SetVar pos, CON, 1 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 862 .SetVar pos, CON, 1 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 861 .SetVar pos, CON, 1 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 920 .SetVar pos, CON, 2 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 919 .SetVar pos, CON, 2 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 918 .SetVar pos, CON, 2 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 810 .SetVar pos, CON, 3 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 809 .SetVar pos, CON, 3 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 808 .SetVar pos, CON, 3 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 856 .SetVar pos, CON, 4 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 855 .SetVar pos, CON, 4 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 854 .SetVar pos, CON, 4 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 810 .SetVar pos, CON, 5 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 809 .SetVar pos, CON, 5 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 808 .SetVar pos, CON, 5 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 831 .SetVar pos, CON, 6 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 830 .SetVar pos, CON, 6 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 829 .SetVar pos, CON, 6 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 788 .SetVar pos, CON, 7 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 787 .SetVar pos, CON, 7 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 786 .SetVar pos, CON, 7 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 887 'NW .SetVar pos, CON, 8 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 886 'NW .SetVar pos, CON, 8 .EndIf .If SENVAL, SENSOR_2, EQ, CON, 885 'NW .SetVar pos, CON, 8 .EndIf Rem dif = pos - azimuth .SetVar dif, VAR, pos .SubVar dif, VAR, azimuth 'dit werkt .If VAR, dif, EQ, CON, 0 .PlaySystemSound 0 .Off MOTOR_A .StopAllTasks .EndIf .EndLoop .EndOfTask End With End Sub