# Reading ADC via HAL with Potentiometer and Displaying GUI on Serial Studio

## L*ab Objective:*

&#x20;   In this lab, participants will utilize the Infineon PSoC 6 microcontroller to interface with a potentiometer via the Hardware Abstraction Layer (HAL). The analog values from the potentiometer will be acquired using the ADC (Analog to Digital Converter) module. Subsequently, the acquired data will be visualized on Serial Studio through a graphical user interface (GUI), enabling real-time monitoring and analysis of the potentiometer's position and corresponding voltage values.

## 🔥 Requirements

<table><thead><tr><th width="429">Resources</th><th>Links</th></tr></thead><tbody><tr><td>Computer</td><td>💻</td></tr><tr><td>ModusToolbox™ software v3.0 or later</td><td><a href="https://www.infineon.com/modustoolbox">Link</a></td></tr><tr><td>CY8CKIT-062S2-43012 Infineon Board</td><td><a href="https://github.com/Advance-Innovation-Centre-AIC/BIIL_MTB-100_Hello_World_and_LED_Blinking_Programming_Template/assets/88732241/0215501d-b774-4045-8e64-ef49e28d8404">Link</a></td></tr><tr><td>Technical Report</td><td><a href="https://www.dropbox.com/scl/fi/amaxc94pte0ut2i1r5ewx/Technical-Report-Lab00.paper?rlkey=b3xm3vrerz9xgv1glb30cvy9z&#x26;dl=0">dropbox</a></td></tr></tbody></table>

## 🚩 Let start

### Create Application

<figure><img src="/files/xXyW4HYqmF8azrqC7MBn" alt=""><figcaption><p>Create Application</p></figcaption></figure>

### Coding

* Config code for Serial Studio
  * Open main.c&#x20;
  * Add the below code into `for(;;)` loop function

{% code title="main.c" %}

```c
// For Serial Studio
 printf("/*%d,%d*/\r\n", counter++, (int) ((adc_out*24)/3304866))
```

{% endcode %}

<figure><img src="/files/YHS2Xr9oG1iHoCKUDQTT" alt=""><figcaption><p>Config code for Serial Studio</p></figcaption></figure>

* Save the file
* Build and Launch the Application

### Set up Serial studio for the board:&#x20;

* Open Serial Studio.&#x20;
* Navigate to the "Setup" section.&#x20;
* Locate the JSON file within your project's workspace and select it.&#x20;
* Select the appropriate port from the available options.&#x20;
* Click on "Connect" to establish a connection and start viewing the sensor data.

<figure><img src="/files/G49SCk6svlEqFRia2d7A" alt=""><figcaption><p>Add file.json</p></figcaption></figure>

### Result&#x20;

<figure><img src="/files/LH485iMkYp0wJwz0FKNN" alt=""><figcaption></figcaption></figure>

> #### 🎉 <mark style="color:blue;">Congratulations! You can now complete this lab</mark>

## Supported toolchains (make variable 'TOOLCHAIN')

* GNU Arm® embedded compiler v10.3.1 (`GCC_ARM`) - Default value of `TOOLCHAIN`
* Arm® compiler v6.16 (`ARM`)
* IAR C/C++ compiler v9.30.1 (`IAR`)

## Supported kits (make variable 'TARGET')

* [PSoC™ 62S2 Wi-Fi Bluetooth® pioneer kit](https://www.infineon.com/CY8CKIT-062S2-43012) (`CY8CKIT-062S2-43012`)
* [PSoC™ 62S1 Wi-Fi Bluetooth® pioneer kit](https://www.infineon.com/CYW9P62S1-43438EVB-01) (`CYW9P62S1-43438EVB-01`)
* [PSoC™ 62S1 Wi-Fi Bluetooth® pioneer kit](https://www.infineon.com/CYW9P62S1-43012EVB-01) (`CYW9P62S1-43012EVB-01`)
* [PSoC™ 62S3 Wi-Fi Bluetooth® prototyping kit](https://www.infineon.com/CY8CPROTO-062S3-4343W) (`CY8CPROTO-062S3-4343W`)

## Related resources

| Resources                       | Links                                                                                                                                                      |
| ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ModusToolbox™ Software Training | [link](https://www.dropbox.com/sh/waj898o4o8eccx0/AAB3hBBaIQo2OvJ5-fubGJIha/training-modustoolbox-level1-getting-started-master/Manual/Ch2-Tools.pdf?dl=0) |

## Other resources

Infineon provides a wealth of data at [www.infineon.com](http://www.infineon.com) to help you select the right device, and quickly and effectively integrate it into your design.

## Document history

Document title: *BILL\_MTB-109* – LED Brightness using PWM via HAL<br>

<table><thead><tr><th width="149">Version</th><th>Description of change</th></tr></thead><tbody><tr><td>1.0.0</td><td>Lab 109: Learn how to Read ADC vai HAL with Potentiometer vai Serial studio. </td></tr></tbody></table>

## Authors:

* *Assoc. Prof. Wiroon Sriborrirux*
* *Mr. Sriengchhun Chheang*
* *Mr. Sabol Socare*<br>

<br>

***

© BDH Corporation, 2022-2023


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.aic-eec.com/embedded-systems/enbedded-system-development-via-psoc6/serial-communication-and-visualization/bmx160-sensor-communication-via-infineon-psoc-tm-6/reading-adc-via-hal-with-potentiometer-and-displaying-gui-on-serial-studio.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
