I am currently working on a senior design project and I have hit a road block when it comes to interfacing an Arduino to a custom PCB.
In short: Using an Arduino Mega 2560 Rev3, I need to be able to supply 10-15 unique voltages to 10-15 different rows in a custom printed reflect array board.
Now, the longer version: My project is to design and build a Reconfigurable Intelligent Surface (or RIS) which is essentially a reflect array. The purpose of an RIS is to be able to steer incident EM waves in a given direction. It accomplishes this through electronically tuning the effective electrical length length of the unit elements of the RIS, controlling the phase shift from element to element and thus being able to control the reflected angle.
Our design tunes the effective electrical length by using varactors, so that at different voltages the elements will be at different capacitances. Each row in our array must be supplied with a controllable voltage from the Arduino. There will be an amplifier bias network printed on the PCB (one bias network per row) to take the output voltage from the Arduino line and amplify it to the 0-22V range we need for our design.
However, I have no idea how to/what to design on the PCB schematic in order to interface the Arduino and would greatly appreciate any insight.
Attached is a photo from the simulation software we are using, HFSS, which hopefully helps to clarify our design. Please note this is not the PCB schematic so it does not include any routing or the biasing networks I mentioned above.
Hii anaispoirier,
Welcome to arduino forum
Please clarify your problem statement and technical specs in details so as to get the proper solution
as per i understood from the problem statement and my knowledge, you have possibly 2 options. first one is to study the power you want to deliever to each cell, design a power grid array with specific consumption and supply it in grid form.
The second option would be supplying voltage to each cell using separate gpio( here arduino mega will not help you, it has about 54 gpio pins), you can consider using another microcontroller having lot more gpio like STM32F767ZI , and using gpio mode in analog so as to vary the voltage you want to supply to each cell
The Mega's pins cannot produce adjustable voltages. They are digital outputs and can only produce 0V or 5V.
One potential solution is to use the PWM output pins and build external low-pass filters to convert the PWM signals to voltages. To know if this will be possible and suitable for your project, you must share much greater details of the requirements such as what range of voltages are required, what resolution is required, etc.
Another potential solution is to use external DAC chips/circuits to produce the voltages. A wide range of such chips are available with different capabilities. In order for anyone on the forum to recommend something, again, much more detail required.
I can see a few ways of going about this. Since there are 10-15 "rails" I would focus on having one (robust) source of power and then regulate that down per-rail.
The obvious first solution would be a simple linear regulator like the https://mou.sr/3Yk5rMl (LM317D2T-TR) combined with a digital potentiometer (perhaps over i2c or serial) to adjust the resistance on the adjust pin and therefore vary the voltage in real-time. This has the benefit of being cheap, available, and commonly used (so software libraries are available).
Another more crazy solution might be to use a digitally controlled voltage regulator like this bad boy: https://mou.sr/3HJJRcW (TPS55288QWRPMRQ1). This is expensive and far overkill... but it is kind of cool...
Without a common power supply there are more solutions as well, such as DAC + amplifier for each rail. I personally feel like that could add a lot of complexity, however.