Reading potentiometer sensor value via an ADC PDL
Lab 108
Lab Objective:
This lab demonstrates the process of reading a potentiometer sensor value through an Analog-to-Digital Converter (ADC) using a Peripheral Driver Library (PDL) on a PSoC 6 microcontroller.
🔥 Requirements
🚩 Let start
Create Application

Use Device Configurator and set the UART and ADC pin
Enable UART Pin:


Config ADC


Coding
Coding: Open the main.c file and add the following code to the main(void) function.
#include "cy_pdl.h"
#include "cyhal.h"
#include "cybsp.h"
#include "cy_retarget_io.h"
#include <stdio.h>
int main(void)
{
cy_rslt_t result;
// UART context variable
cy_stc_scb_uart_context_t UART_context;
/* Initialize the device and board peripherals */
result = cybsp_init() ;
if (result != CY_RSLT_SUCCESS)
{
CY_ASSERT(0);
}
__enable_irq();
/* Configure and enable the UART peripheral */
Cy_SCB_UART_Init(UART_HW, &UART_config, &UART_context);
Cy_SCB_UART_Enable(UART_HW);
// Initialize the AREF - block needed by ADC_HW ADC
Cy_SysAnalog_Init(&AREF_config);
// Initialize AREF
Cy_SysAnalog_Enable();
// Initialize the ADC
Cy_SAR_Init(ADC_HW, &ADC_config);
// Enable the ADC
Cy_SAR_Enable(ADC_HW);
int32_t ADCresult = 0; // ADC conversion result
int32_t mVolts = 0; // Var to store voltage conversion of ADC result
for (;;){
// Start a single conversion
Cy_SAR_StartConvert(ADC_HW, CY_SAR_START_CONVERT_SINGLE_SHOT);
if(Cy_SAR_IsEndConversion(ADC_HW, CY_SAR_WAIT_FOR_RESULT) == CY_SAR_SUCCESS){
ADCresult = Cy_SAR_GetResult32(ADC_HW, 0);
mVolts = Cy_SAR_CountsTo_mVolts(ADC_HW, 0, ADCresult);
}
char stringBuffer[20];
sprintf(stringBuffer, "ADC = %ld\r\n", mVolts);
Cy_SCB_UART_PutString(UART_HW, stringBuffer);
Cy_SysLib_Delay(100);
}
}
Build the Application

Launching the Application

Note: Before launching the program to the board, make sure that you have already connected the board to the computer through a USB cable.
Result

🎉 Congratulations! You can now complete Lab108
Supported toolchains (make variable 'TOOLCHAIN')
GNU Arm® embedded compiler v10.3.1 (
GCC_ARM
) - Default value ofTOOLCHAIN
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 (
CY8CKIT-062S2-43012
)PSoC™ 62S1 Wi-Fi Bluetooth® pioneer kit (
CYW9P62S1-43438EVB-01
)PSoC™ 62S1 Wi-Fi Bluetooth® pioneer kit (
CYW9P62S1-43012EVB-01
)PSoC™ 62S3 Wi-Fi Bluetooth® prototyping kit (
CY8CPROTO-062S3-4343W
)
Related resources
ModusToolbox™ Software Training
Other resources
Infineon provides a wealth of data at 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-108 – Read potentiometer sensor value via an ADC PDL
1.0.0
Lab 108: Learn basic GPIO control with PSoC 6, using ADC read potentiometer sensor value via PDL
Authors:
Assoc. Prof. Wiroon Sriborrirux
Mr. Sriengchhun Chheang
Mr. Sabol Socare
© BDH Corporation, 2022-2023
Last updated
Was this helpful?