Architectonisch model van een bushalte met automatisch zonnescherm V2
Componenten en benodigdheden
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 6 | ||||
| × | 3 | ||||
| × | 1 | ||||
| × | 27 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 |
Over dit project
Dit is een upgrade van het vorige project (V 1.0)
De belangrijkste wijzigingen ten opzichte van V1.0 zijn:
- De grootte van het architectuurmodel. Het heeft een afmeting van 1.5m x 1m
- Het gewicht van het zonnescherm, daarom veranderen we de SG99 microservo in de MG995
- We hebben een externe stroombron toegevoegd zodat de MG995 zou kunnen werken
- We hebben twee verschillende mechanismen geprobeerd om het zonnescherm uit te zetten/in te krimpen. Degene die werd weggegooid, wordt getoond in de tweede video. Degene die we aan het einde gebruikten, wordt getoond in de 3e. video.
- Wijzig de schets om de VarSpeedServo-bibliotheek te gebruiken
- Een kleine logische fout in een van de zonneschermstatussen opgelost (met dank aan Gurniet1928)
U kunt de V1.0 vinden via de volgende link:Modelversie 1.0
DE VIDEO'S:
Maken van de schakeling
Maken van het architectonisch model
Code
- De code
De CodeC/C++
#includeVarSpeedServo servo;int EasternLight =0;int westernLight =0;int rainSensed =0;int sunshadePosition =0;int rainThreshold =512;int sunshadeExpanded =120;int sunshadeContracted =60;int ambientLighting =0;int turnOnLightsOn =150;int ledIntensity =0;int ledPower =0;int servoSpeed =20;bool debugging =false; // Stel in op TRUE om foutopsporing in te schakelen naar Serial Consolevoid setup () { pinMode (A4, OUTPUT); // Binnenverlichting van de bushalte pinMode (A5, OUTPUT); // Straatlantaarn pinMode (A1, INPUT); // Westers licht pinMode (A2, INPUT); // Oosterse licht pinMode (A3, INPUT); // Regensensor analoge pinMode (2, INPUT); // Regensensor digitale servo.attach (A0); // Servo servo.write (sunshadeContracted, servoSpeed, true); if (foutopsporing) {Serial.begin(9600); Serial.println("*** DEBUGGING BEGONNEN ***"); Serial.println ("-------------------------"); }}void oya_mydebug(String text, int value =NULL){ // Ik heb 'oya_' toegevoegd als een manier om een crash te voorkomen met elke mogelijke debugging //-functie die een externe bibliotheek zou kunnen hebben. Oya is een afkorting van de naam // van mijn bedrijf OfficeYA if (debugging){ Serial.print(text); if (waarde){ Serial.print(" ="); Serial.println(waarde); } else { Serial.println(" "); } }}void expand_collapse(int EasternLight, int westernLight){ if (easternLight <=westernLight) { // It's sunrise oya_mydebug("Het is zonsopgang"); if (sunshadePosition! =sunshadeExpanded) {servo.write (sunshadeExpanded, servoSpeed, true); oya_mydebug("Zonnescherm uitgevouwen"); } } if (easternLight> westernLight) { // It's down oya_mydebug ("De zon gaat onder"); if (sunshadePosition! =sunshadeContracted) {servo.write (sunshadeContracted, servoSpeed, true); oya_mydebug("Zonnescherm gecontracteerd"); } }}void loop(){ // Haal sensorwaarden op easternLight =analogRead(A2); westernLight =analoog lezen (A1); rainSensed =analoog lezen (A3); sunshadePosition =servo.read(); ambientLighting =((easternLight + westernLight) / 2); // Het gemiddelde van de helderheid van het oosten en westen oya_mydebug("easternLight", eastLight); oya_mydebug("westernLight", westernLight); oya_mydebug("rainSensed", rainSensed); oya_mydebug("zonneschermpositie", zonneschermpositie); oya_mydebug("ambientLighting", ambientLighting); // Kijken of het regent? if (rainSensed Schema's
Productieproces
- Modeltrein
- Recycle sorteerrobot met Google Coral
- Maximaliseer terugkerende inkomsten met een slim bedrijfsmodel voor verbruiksartikelen
- Automatische treinbesturing
- Obstakels vermijden robot met servomotor
- Automatisch plantenwatersysteem met Arduino
- Automatisch draaien met korte werktijden
- Een inleiding tot servopers
- Wat is een servomotor?
- Koppeling van vertragingskasten met servomotoren
- ECS G86 kotteren met spilstopcyclus