Advertisement
Guest User

Untitled

a guest
Aug 4th, 2022
21
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Код та схема запозичені з сайту https://robocraft.ru/
  2. // The code and scheme are borrowed from the website https://robocraft.ru/
  3.  
  4. // Ініціалізація пінів та надання змінним їх значення Initialize Pins
  5. int analogPin = 0;
  6. int chargePin = 13;
  7. int dischargePin = 11; Це пришвидшує процес розрядки, але це не обов’язково //speeds up discharging process, not necessary though
  8. // Ініціалізація резистора Initialize Resistor
  9. int resistorValue = 10000; //(Опір резистора)
  10. // Ініціалізація таймера Initialize timer
  11. unsigned long startTime;
  12. unsigned long elapsedTime;
  13. // Ініціалізація значень емності конденсатора  Initialize Capacitance Variables
  14. float microFarads;
  15. float nanoFarads;
  16. void setup()
  17. {
  18.   pinMode(chargePin, OUTPUT);
  19.   digitalWrite(chargePin, LOW);
  20.   Serial.begin(9600); // Початок роботи порта Start of the port work
  21. }
  22. void loop()
  23. {
  24.   digitalWrite(chargePin, HIGH); //Починається зарядка конденсатора Begins charging the capacitor
  25.   startTime = millis(); // Запускає таймер Begins the timer
  26.   while(analogRead(analogPin) < 648)
  27.   {
  28.     // Нічого не робить, поки конденсатор не досягне 63,2% від загальної напруги Does nothing until capacitor reaches 63.2% of total voltage
  29.   }
  30.   elapsedTime= millis() - startTime; // Визначає, скільки часу знадобилося для зарядки конденсатора Determines how much time it took to charge capacitor
  31.   microFarads = ((float)elapsedTime / resistorValue) * 1000;
  32.   Serial.print(elapsedTime);
  33.   Serial.print(" mS    ");
  34.   if (microFarads > 1) // Визначає, які одиниці мають бути мікро чи нано, і друкує відповідно Determines if units should be micro or nano and prints accordingly
  35.   {
  36.     Serial.print((long)microFarads);
  37.     Serial.println(" microFarads");
  38.   }
  39.   else
  40.   {
  41.     nanoFarads = microFarads * 1000.0;
  42.     Serial.print((long)nanoFarads);
  43.     Serial.println(" nanoFarads");
  44.     delay(500);
  45.   }
  46.   digitalWrite(chargePin, LOW); // Припинення зарядки конденсатора Stops charging capacitor
  47.   pinMode(dischargePin, OUTPUT);
  48.   digitalWrite(dischargePin, LOW); // Дозволяє конденсатору розряджатися Allows capacitor to discharge
  49.   while(analogRead(analogPin) > 0)
  50.   {
  51.     // Нічого не робити, поки конденсатор не розрядиться Do nothing until capacitor is discharged
  52.   }
  53.   pinMode(dischargePin, INPUT); // Запобігає розрядці конденсатора Prevents capacitor from discharging
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement