In many cases, "но" is used to set one contrast (for example, we talk about the same person (subject of the sentence) in both parts of it, but you make 2 different comments about him/ her.
Маша хорошо читает по-английски, но говорит ещё плохо.
"А" is used to set two contrasts- 2 different comments about 2 different topics.
Маша любит читать, а Лена любит ходить на дискотеку".
"А" can also be used in a question when you ask for additional information.
- Я много путешествовал по Европе.
- А в Америке ты был?