This shows you the differences between two versions of the page.
pm:prj2025:eradu:iulian_adrian.andrei [2025/05/26 00:50] iulian.andrei2608 |
pm:prj2025:eradu:iulian_adrian.andrei [2025/05/26 18:15] (current) iulian.andrei2608 |
||
---|---|---|---|
Line 97: | Line 97: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | |||
- | |||
- | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | ||
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | ||
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | ||
- | * (etapa 3) surse şi funcţii implementate | ||
- | </note> | ||
=== Development Environment === | === Development Environment === | ||
Line 157: | Line 148: | ||
=== Implemented functions === | === Implemented functions === | ||
- | * **handleButtonInterrupt()** – Interrupt service routine (ISR) called when the user presses the button. It toggles the state of the glucometer (`glucometerON`) and sets a flag (`buttonPressed`) for state management. | + | * **handleButtonInterrupt()** – Interrupt service routine (ISR) called when the user presses the button. It toggles the state of the glucometer (//glucometerON//) and sets a flag (//buttonPressed//) for state management. |
- | * **turnOffAllLEDs()** – Sets PWM output of all six LEDs to zero using `analogWrite()`. This ensures a clean reset when the system is turned off or reinitialized. | + | * **turnOffAllLEDs()** – Sets PWM output of all six LEDs to zero using //analogWrite//. This ensures a clean reset when the system is turned off or reinitialized. |
* **adjustRedPWM(diff)** – Called when hyperglycemia is detected. It calculates the intensity of red LEDs proportionally to how far the glucose level exceeds 150 mg/dL. | * **adjustRedPWM(diff)** – Called when hyperglycemia is detected. It calculates the intensity of red LEDs proportionally to how far the glucose level exceeds 150 mg/dL. | ||
Line 167: | Line 158: | ||
* **adjustGreenPWM(glucose)** – Called when glucose levels are within normal range. It calculates a ratio within the 100–150 mg/dL band to smoothly vary the intensity between the two green LEDs. | * **adjustGreenPWM(glucose)** – Called when glucose levels are within normal range. It calculates a ratio within the 100–150 mg/dL band to smoothly vary the intensity between the two green LEDs. | ||
- | ===== Rezultate Obţinute ===== | + | ===== Results Obtained ===== |
- | <note tip> | + | During the operation of the project, the current value generated by the potentiometer, which simulates the current from an electrochemical test strip, is read through the Arduino’s analog input pin. Based on this current, the code calculates the estimated glucose concentration and displays it on the 1602 LCD screen. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
- | ===== Concluzii ===== | + | According to the calculated glucose level, RGB LEDs are controlled via PWM signals to indicate different glycemic states: |
+ | * For values below 100 mg/dL, yellow LEDs light up, indicating hypoglycemia. | ||
+ | * For values between 100 and 150 mg/dL, green LEDs are active, indicating a normal level. | ||
+ | * For values above 150 mg/dL, red LEDs turn on, signaling hyperglycemia. | ||
+ | |||
+ | These results were validated through manual testing by adjusting the potentiometer and observing the corresponding changes on the display and LED intensity, confirming the correct operation of the system in simulating glucose measurement. | ||
+ | |||
+ | The system responds quickly to changes in current and provides a clear user interface through the LCD display and visual LED indicators. | ||
+ | |||
+ | |||
+ | |||
+ | ===== Conclusion ===== | ||
+ | |||
+ | This project successfully demonstrates a basic but functional glucometer built with Arduino. By simulating the sensor signal with a potentiometer and using an operational amplifier, we were able to measure small currents and convert them into glucose levels. The system provides clear feedback through an LCD display and colored LEDs, offering both visual and numerical information to the user. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | Source code: |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
+ | https://github.com/AdrianIulian26/GlucoMeter | ||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | ||
- | </note> | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 193: | Line 194: | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | ==== Hardware ==== |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | * OP07 Operational Amplifier Datasheet |
+ | [https://www.ti.com/lit/ds/symlink/op07.pdf TI OP07 Datasheet] | ||
+ | |||
+ | * How Electrochemical Glucose Sensors Work | ||
+ | [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6790891/ PMC Article on Electrochemical Glucose Biosensors] | ||
+ | |||
+ | * Principles of Glucose Meter Operation (Explanation) | ||
+ | [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3904486/ NIH PMC Article on Glucose Meter Principles] | ||
+ | |||
+ | ==== Software ==== | ||
+ | * PWM Control with Arduino (Explanation and Examples) | ||
+ | [https://www.arduino.cc/en/Tutorial/PWM Arduino PWM Tutorial] | ||
+ | |||
+ | * Arduino Serial Communication Basics | ||
+ | [https://www.arduino.cc/en/Serial/Begin Arduino Serial] | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||