Hi,
A design starts with requirements and specifications.
Some example that relates to your project.
* Basically you want to process "some gas information"
So the first specifications you need to answer (yourself)
* what gas information are you interested in?
* what range (minumim, maximum values) are you interested in?
* what's the smallest stepsize you need to destinguish?
* how fast do you need to update/ process the data.
Then you chose an sensor that matches these requirements.
The sensor datasheet tells you about interface and how the "gas information" is converted.
In case of a MQxx sensor ... it is an analog interface.
So according your initial requirements you now can calculate the "gas information" into analog signal information.
Now you know the "analog requirements" (range, resolution).
These analog requirements need to match the ADC.
Now you need to check whether the built in ADC is suitable or you need an external ADC. You also determine whether/how your analog signal needs to be pricessed (range adjustment using amplifiers, filters ....)
According the ADC specification you now can determine the digital range/ resolution.
... and so on...
It's straight forward and thus can be "designed" step by step.. (including microcontroller selection and software)
Gas --> sensor --> analog information --> analog signal processing --> ADC --> digital information --> digital signal processing --> and so on
There's nothing unknown. No need to guess. No need to "trial and error".
I usually go this way. Before I draw the first piece of schematic I already know what values to expect at each state.
The same is true for software. I have clear expectations, sometimes in my brain, but usually on a piece of paper.
For sure many designers go a different way. They don't know what to expect, try this and that, and sometimes it works and sometimes not.
Sometimes it "looks like it works" but refuses to work with a different sensor, with different conditions.... not my way.
Klaus